runable
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user