import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:hive_flutter/hive_flutter.dart'; import '../models/user_profile.dart'; import 'theme_provider.dart'; // Provider for the Display Mode final displayModeProvider = NotifierProvider(DisplayModeNotifier.new); class DisplayModeNotifier extends Notifier { late UserProfile _profile; late Box _box; @override String build() { _box = ref.watch(userProfileBoxProvider); _profile = _box.get('current_user') ?? UserProfile(createdAt: DateTime.now()); return _profile.displayMode; } Future setDisplayMode(String mode) async { state = mode; _profile.displayMode = mode; _profile.updatedAt = DateTime.now(); // Save to box (use put if not yet in box, otherwise save) if (_profile.isInBox) { await _profile.save(); } else { await _box.put('current_user', _profile); } } void toggle() { setDisplayMode(state == 'list' ? 'grid' : 'list'); } }