31 lines
902 B
Dart
31 lines
902 B
Dart
import 'dart:convert';
|
|
|
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|
import 'package:moneymgr_mobile/services/api/server_api.dart';
|
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
part 'prefs.g.dart';
|
|
|
|
@riverpod
|
|
Future<SharedPreferencesWithCache> prefs(Ref ref) =>
|
|
SharedPreferencesWithCache.create(
|
|
cacheOptions: const SharedPreferencesWithCacheOptions(),
|
|
);
|
|
|
|
extension MoneyMgrSharedPreferences on SharedPreferencesWithCache {
|
|
ServerConfig? serverConfig() {
|
|
final json = getString("serverConfig");
|
|
if (json != null) return ServerConfig.fromJson(jsonDecode(json));
|
|
return null;
|
|
}
|
|
|
|
Future<void> setServerConfig(ServerConfig config) async {
|
|
await setString("serverConfig", jsonEncode(config));
|
|
}
|
|
|
|
Future<void> clearServerConfig() async {
|
|
await remove("serverConfig");
|
|
}
|
|
}
|