refactor: update providers to use keepAlive for enhanced state management
- Changed multiple provider annotations to `@Riverpod(keepAlive: true)` to improve state retention and management across the application. - This update aligns with recent enhancements in state management practices, ensuring better performance and user experience throughout the app.
This commit is contained in:
@@ -33,7 +33,7 @@ final chatMessagesProvider =
|
||||
);
|
||||
|
||||
// Loading state for conversation (used to show chat skeletons during fetch)
|
||||
@riverpod
|
||||
@Riverpod(keepAlive: true)
|
||||
class IsLoadingConversation extends _$IsLoadingConversation {
|
||||
@override
|
||||
bool build() => false;
|
||||
@@ -42,7 +42,7 @@ class IsLoadingConversation extends _$IsLoadingConversation {
|
||||
}
|
||||
|
||||
// Prefilled input text (e.g., when sharing text from other apps)
|
||||
@riverpod
|
||||
@Riverpod(keepAlive: true)
|
||||
class PrefilledInputText extends _$PrefilledInputText {
|
||||
@override
|
||||
String? build() => null;
|
||||
@@ -53,7 +53,7 @@ class PrefilledInputText extends _$PrefilledInputText {
|
||||
}
|
||||
|
||||
// Trigger to request focus on the chat input (increment to signal)
|
||||
@riverpod
|
||||
@Riverpod(keepAlive: true)
|
||||
class InputFocusTrigger extends _$InputFocusTrigger {
|
||||
@override
|
||||
int build() => 0;
|
||||
@@ -68,7 +68,7 @@ class InputFocusTrigger extends _$InputFocusTrigger {
|
||||
}
|
||||
|
||||
// Whether the chat composer currently has focus
|
||||
@riverpod
|
||||
@Riverpod(keepAlive: true)
|
||||
class ComposerHasFocus extends _$ComposerHasFocus {
|
||||
@override
|
||||
bool build() => false;
|
||||
|
||||
@@ -534,7 +534,7 @@ final selectedMessagesProvider =
|
||||
);
|
||||
|
||||
/// Provider for batch operation mode
|
||||
@riverpod
|
||||
@Riverpod(keepAlive: true)
|
||||
class BatchMode extends _$BatchMode {
|
||||
@override
|
||||
bool build() => false;
|
||||
|
||||
@@ -326,7 +326,7 @@ final voiceInputServiceProvider = Provider<VoiceInputService>((ref) {
|
||||
return VoiceInputService();
|
||||
});
|
||||
|
||||
@riverpod
|
||||
@Riverpod(keepAlive: true)
|
||||
Future<bool> voiceInputAvailable(Ref ref) async {
|
||||
final service = ref.watch(voiceInputServiceProvider);
|
||||
if (!service.isSupportedPlatform) return false;
|
||||
|
||||
@@ -5,14 +5,14 @@ import 'package:conduit/core/services/prompts_service.dart';
|
||||
|
||||
part 'prompts_providers.g.dart';
|
||||
|
||||
@riverpod
|
||||
@Riverpod(keepAlive: true)
|
||||
Future<List<Prompt>> promptsList(Ref ref) async {
|
||||
final promptsService = ref.watch(promptsServiceProvider);
|
||||
if (promptsService == null) return const <Prompt>[];
|
||||
return promptsService.getPrompts();
|
||||
}
|
||||
|
||||
@riverpod
|
||||
@Riverpod(keepAlive: true)
|
||||
class ActivePromptCommand extends _$ActivePromptCommand {
|
||||
@override
|
||||
String? build() => null;
|
||||
|
||||
@@ -5,14 +5,14 @@ import 'package:conduit/core/services/tools_service.dart';
|
||||
|
||||
part 'tools_providers.g.dart';
|
||||
|
||||
@riverpod
|
||||
@Riverpod(keepAlive: true)
|
||||
Future<List<Tool>> toolsList(Ref ref) async {
|
||||
final toolsService = ref.watch(toolsServiceProvider);
|
||||
if (toolsService == null) return [];
|
||||
return await toolsService.getTools();
|
||||
}
|
||||
|
||||
@riverpod
|
||||
@Riverpod(keepAlive: true)
|
||||
class SelectedToolIds extends _$SelectedToolIds {
|
||||
@override
|
||||
List<String> build() => [];
|
||||
|
||||
Reference in New Issue
Block a user