Grain flutter app
1import 'package:flutter_riverpod/flutter_riverpod.dart';
2
3import '../api.dart';
4import '../models/profile.dart';
5
6final actorSearchProvider = StateNotifierProvider<ActorSearchNotifier, Map<String, List<Profile>>>(
7 (ref) => ActorSearchNotifier(),
8);
9
10class ActorSearchNotifier extends StateNotifier<Map<String, List<Profile>>> {
11 ActorSearchNotifier() : super({});
12
13 Future<List<Profile>> search(String query) async {
14 if (query.isEmpty) return [];
15 if (state.containsKey(query)) {
16 return state[query]!;
17 }
18 final results = await apiService.searchActors(query);
19 state = {...state, query: results};
20 return results;
21 }
22}