import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../core/api/api_client.dart'; import '../core/auth/auth_state.dart'; import '../models/session.dart'; import '../repositories/session_repository.dart'; final sessionRepositoryProvider = Provider((ref) { return SessionRepository(ref.watch(apiClientProvider)); }); final sessionListProvider = AsyncNotifierProvider>( SessionListNotifier.new, ); class SessionListNotifier extends AsyncNotifier> { @override Future> build() async { ref.watch(authStateProvider.select((s) => s.user?.shopId)); return ref.read(sessionRepositoryProvider).list(); } Future reload() async { state = const AsyncValue.loading(); try { final result = await ref.read(sessionRepositoryProvider).list(); state = AsyncValue.data(result); } catch (e, st) { state = AsyncValue.error(e, st); } } Future forceLogout(int id) async { await ref.read(sessionRepositoryProvider).forceLogout(id); await reload(); } }