nexus/lib/controllers/key.dart
2026-09-20 15:45:32 -04:00

28 lines
801 B
Dart

import "package:flutter_riverpod/flutter_riverpod.dart";
import "package:nexus/controllers/shared_prefs.dart";
class KeyController(final String key) extends AsyncNotifier<String?> {
static const String spaceKey = "space";
static const String roomKey = "room";
static const String pushKeyKey = "pushKey";
@override
Future<String?> build() =>
ref.watch(SharedPrefsController.provider).getString(key);
Future<void> set(String? value) async {
final prefs = ref.watch(SharedPrefsController.provider);
state = .data(value);
if (value == null) {
await prefs.remove(key);
} else {
await prefs.setString(key, value);
}
}
static final provider =
AsyncNotifierProvider.family<KeyController, String?, String>(
KeyController.new,
);
}