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 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 setServerConfig(ServerConfig config) async { await setString("serverConfig", jsonEncode(config)); } Future clearServerConfig() async { await remove("serverConfig"); } }