import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:shared_preferences/shared_preferences.dart'; final onboardingStateProvider = FutureProvider((ref) async { final prefs = await SharedPreferences.getInstance(); return prefs.getBool('onboardingCompleted') ?? false; }); final onboardingControllerProvider = Provider((ref) { return OnboardingController(ref); }); class OnboardingController { final Ref ref; OnboardingController(this.ref); Future setOnboarded(bool value) async { final prefs = await SharedPreferences.getInstance(); await prefs.setBool('onboardingCompleted', value); // refresh the read provider so UI updates ref.invalidate(onboardingStateProvider); } }