Matthias Nott
2026-07-10 1d79dcb975ae6f606a783a3d0287d8dc473e1cc8
lib/providers/providers.dart
....@@ -6,6 +6,7 @@
66 import 'package:flutter_secure_storage/flutter_secure_storage.dart';
77
88 import '../models/message.dart';
9
+import '../models/project.dart';
910 import '../models/server_config.dart';
1011 import '../models/session.dart';
1112 import '../services/message_store.dart';
....@@ -25,8 +26,8 @@
2526
2627 final serverConfigProvider =
2728 StateNotifierProvider<ServerConfigNotifier, ServerConfig?>((ref) {
28
- return ServerConfigNotifier();
29
-});
29
+ return ServerConfigNotifier();
30
+ });
3031
3132 class ServerConfigNotifier extends StateNotifier<ServerConfig?> {
3233 ServerConfigNotifier() : super(null) {
....@@ -60,8 +61,9 @@
6061
6162 // --- Connection Status ---
6263
63
-final wsStatusProvider =
64
- StateProvider<ConnectionStatus>((ref) => ConnectionStatus.disconnected);
64
+final wsStatusProvider = StateProvider<ConnectionStatus>(
65
+ (ref) => ConnectionStatus.disconnected,
66
+);
6567
6668 final connectionDetailProvider = StateProvider<String>((ref) => '');
6769 final connectedViaProvider = StateProvider<String>((ref) => '');
....@@ -83,12 +85,17 @@
8385 }
8486 });
8587
88
+// --- Projects (PAI project launcher) ---
89
+
90
+final projectsProvider = StateProvider<List<Project>>((ref) => []);
91
+
8692 // --- Messages ---
8793
88
-final messagesProvider =
89
- StateNotifierProvider<MessagesNotifier, List<Message>>((ref) {
90
- return MessagesNotifier(ref);
91
-});
94
+final messagesProvider = StateNotifierProvider<MessagesNotifier, List<Message>>(
95
+ (ref) {
96
+ return MessagesNotifier(ref);
97
+ },
98
+);
9299
93100 class MessagesNotifier extends StateNotifier<List<Message>> {
94101 MessagesNotifier(this.ref) : super([]);
....@@ -103,7 +110,9 @@
103110 void switchSession(String sessionId) {
104111 if (_currentSessionId == sessionId) {
105112 TraceService.instance.addTrace(
106
- 'switchSession SKIP', 'already on ${sessionId.substring(0, 8)}');
113
+ 'switchSession SKIP',
114
+ 'already on ${sessionId.substring(0, 8)}',
115
+ );
107116 return;
108117 }
109118 TraceService.instance.addTrace(
....@@ -173,8 +182,7 @@
173182
174183 // --- Unread Counts ---
175184
176
-final unreadCountsProvider =
177
- StateProvider<Map<String, int>>((ref) => {});
185
+final unreadCountsProvider = StateProvider<Map<String, int>>((ref) => {});
178186
179187 // --- Input Mode ---
180188
....@@ -187,7 +195,9 @@
187195 // Holds the bridge between NavigateScreen and ChatScreen's MQTT service.
188196 // ChatScreen sets this when MQTT is initialized; NavigateScreen reads it.
189197 // Using a Riverpod provider eliminates the stale static reference risk.
190
-final navigateNotifierProvider = StateProvider<NavigateNotifier?>((ref) => null);
198
+final navigateNotifierProvider = StateProvider<NavigateNotifier?>(
199
+ (ref) => null,
200
+);
191201
192202 // --- Pro / Purchase Status ---
193203