nexus/lib/controllers/settings.dart
Henry-Hiles a9993013f5
add rooms to mention chips
Needs handling for event links, plus clickability
2026-08-11 20:34:43 -04:00

27 lines
816 B
Dart

import "dart:convert";
import "package:flutter_riverpod/flutter_riverpod.dart";
import "package:nexus/controllers/settings_file.dart";
import "package:nexus/models/settings.dart";
class SettingsController extends AsyncNotifier<Settings> {
@override
Future<Settings> build() async {
final file = await ref.watch(SettingsFileController.provider.future);
try {
return .fromJson(json.decode(await file.readAsString()));
} catch (_) {
return .new();
}
}
Future<void> set(Settings settings) async {
state = .data(settings);
final file = await ref.watch(SettingsFileController.provider.future);
await file.writeAsString(json.encode(settings.toJson()));
}
static final provider = AsyncNotifierProvider<SettingsController, Settings>(
SettingsController.new,
);
}