Files
retail/lib/features/settings/presentation/providers/settings_provider.dart
Phuoc Nguyen b94c158004 runable
2025-10-10 16:38:07 +07:00

52 lines
1.5 KiB
Dart

import 'package:flutter/material.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import '../../domain/entities/app_settings.dart';
import '../../../../core/constants/app_constants.dart';
part 'settings_provider.g.dart';
/// Provider for app settings
@riverpod
class Settings extends _$Settings {
@override
Future<AppSettings> build() async {
// TODO: Implement with repository
// Return default settings for now
return const AppSettings(
themeMode: ThemeMode.system,
language: AppConstants.defaultLanguage,
currency: AppConstants.defaultCurrency,
taxRate: AppConstants.defaultTaxRate,
storeName: AppConstants.appName,
enableSync: true,
);
}
Future<void> updateTheme(ThemeMode mode) async {
final current = state.value;
if (current != null) {
final updated = current.copyWith(themeMode: mode);
state = AsyncValue.data(updated);
// TODO: Persist to repository
}
}
Future<void> updateLanguage(String language) async {
final current = state.value;
if (current != null) {
final updated = current.copyWith(language: language);
state = AsyncValue.data(updated);
// TODO: Persist to repository
}
}
Future<void> updateLastSyncTime() async {
final current = state.value;
if (current != null) {
final updated = current.copyWith(lastSyncAt: DateTime.now());
state = AsyncValue.data(updated);
// TODO: Persist to repository
}
}
}