import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../../backend/backend.dart'; import '../../../core/utils/result.dart'; final viewedControllerProvider = AsyncNotifierProvider>(ViewedController.new); class ViewedController extends AsyncNotifier> { @override Future> build() => _load(); Future refresh() async { state = AsyncData(await _load()); } Future clear() async { await ref.read(viewedHistoryServiceProvider).clearHistory(); ref.invalidate(viewedKeysProvider); state = const AsyncData([]); } Future> _load() async { final result = await ref.read(viewedHistoryServiceProvider).getViewedPosts(); return result is Success> ? result.data : const []; } }