toggleTodo method
Implementation
Future<void> toggleTodo(String id) async {
final repository = ref.read(todoRepositoryProvider);
final result = await repository.toggleTodo(id);
result.fold(
(failure) => ref.read(sideEffectProvider.notifier).notify(
SideEffect.failure(
title: 'Update Failed',
message: failure.toString(),
),
),
(_) {
final todos = ref.read(todosProvider);
final todo = todos.firstWhere((t) => t.id == id);
ref.read(todosProvider.notifier).updateTodo(
todo.copyWith(isCompleted: !todo.isCompleted),
);
},
);
}