import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../data/models/note.dart'; import 'api_client_provider.dart'; final notesProvider = AsyncNotifierProvider>(NotesNotifier.new); class NotesNotifier extends AsyncNotifier> { @override Future> build() async { return ref.watch(notesRepositoryProvider).getAll(); } Future create(String title, String body) async { final note = await ref.read(notesRepositoryProvider).create(title, body); state = AsyncData([...state.valueOrNull ?? [], note]); return note; } Future updateNote(int id, String title, String body) async { final updated = await ref.read(notesRepositoryProvider).update(id, title, body); state = AsyncData([ for (final n in state.valueOrNull ?? []) if (n.id == id) updated else n, ]); return updated; } Future delete(int id) async { await ref.read(notesRepositoryProvider).delete(id); state = AsyncData([ for (final n in state.valueOrNull ?? []) if (n.id != id) n, ]); } } final noteDetailProvider = FutureProvider.family((ref, id) async { return ref.watch(notesRepositoryProvider).getOne(id); });