diff --git a/lib/features/chat/widgets/modern_chat_input.dart b/lib/features/chat/widgets/modern_chat_input.dart index f20b0fb..b80dbba 100644 --- a/lib/features/chat/widgets/modern_chat_input.dart +++ b/lib/features/chat/widgets/modern_chat_input.dart @@ -338,9 +338,6 @@ class _ModernChatInputState extends ConsumerState // Strip leading '/' prefix so we can match prompt commands (e.g., "help") final String searchQuery = query.startsWith('/') ? query.substring(1) : query; - // Prevent matching all prompts when user types only '/' - if (searchQuery.isEmpty) return const []; - final List filtered = prompts .where( @@ -976,6 +973,7 @@ class _ModernChatInputState extends ConsumerState final List composerChildren = [ if (_showPromptOverlay) Padding( + key: const ValueKey('prompt-overlay'), padding: const EdgeInsets.fromLTRB( Spacing.sm, 0, @@ -986,6 +984,7 @@ class _ModernChatInputState extends ConsumerState ), if (showCompactComposer) Padding( + key: const ValueKey('composer-compact'), padding: const EdgeInsets.fromLTRB( Spacing.screenPadding, Spacing.xs, @@ -1059,6 +1058,7 @@ class _ModernChatInputState extends ConsumerState ) else ...[ Padding( + key: const ValueKey('composer-expanded-input'), padding: const EdgeInsets.fromLTRB( Spacing.sm, Spacing.xs, @@ -1097,6 +1097,7 @@ class _ModernChatInputState extends ConsumerState ), ), Padding( + key: const ValueKey('composer-expanded-buttons'), padding: const EdgeInsets.fromLTRB( Spacing.inputPadding, 0, diff --git a/lib/features/navigation/widgets/chats_drawer.dart b/lib/features/navigation/widgets/chats_drawer.dart index cf1fa0a..54c57b9 100644 --- a/lib/features/navigation/widgets/chats_drawer.dart +++ b/lib/features/navigation/widgets/chats_drawer.dart @@ -1478,7 +1478,12 @@ class _ChatsDrawerState extends ConsumerState { Widget _buildBottomSection(BuildContext context) { final theme = context.conduitTheme; final sidebarTheme = context.sidebarTheme; - final user = ref.watch(currentUserProvider2); + final authUser = ref.watch(currentUserProvider2); + final asyncUser = ref.watch(currentUserProvider); + final user = asyncUser.maybeWhen( + data: (value) => value ?? authUser, + orElse: () => authUser, + ); final api = ref.watch(apiServiceProvider); String initialFor(String name) { diff --git a/lib/features/onboarding/views/onboarding_sheet.dart b/lib/features/onboarding/views/onboarding_sheet.dart index e5a5663..124774e 100644 --- a/lib/features/onboarding/views/onboarding_sheet.dart +++ b/lib/features/onboarding/views/onboarding_sheet.dart @@ -5,6 +5,7 @@ import 'package:flutter_animate/flutter_animate.dart'; import 'package:conduit/l10n/app_localizations.dart'; import '../../auth/providers/unified_auth_providers.dart'; +import '../../../core/providers/app_providers.dart'; import '../../../core/utils/user_display_name.dart'; import '../../../shared/theme/theme_extensions.dart'; import '../../../shared/widgets/sheet_handle.dart'; @@ -67,7 +68,12 @@ class _OnboardingSheetState extends ConsumerState { Widget build(BuildContext context) { final height = MediaQuery.of(context).size.height; final l10n = AppLocalizations.of(context)!; - final user = ref.watch(currentUserProvider2); + final authUser = ref.watch(currentUserProvider2); + final asyncUser = ref.watch(currentUserProvider); + final user = asyncUser.maybeWhen( + data: (value) => value ?? authUser, + orElse: () => authUser, + ); final greetingName = deriveUserDisplayName(user); final pages = _buildPages(l10n, greetingName); final pageCount = pages.length; diff --git a/lib/features/profile/views/profile_page.dart b/lib/features/profile/views/profile_page.dart index 87aa4f3..8937bc4 100644 --- a/lib/features/profile/views/profile_page.dart +++ b/lib/features/profile/views/profile_page.dart @@ -41,7 +41,12 @@ class ProfilePage extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final user = ref.watch(currentUserProvider2); + final authUser = ref.watch(currentUserProvider2); + final asyncUser = ref.watch(currentUserProvider); + final user = asyncUser.maybeWhen( + data: (value) => value ?? authUser, + orElse: () => authUser, + ); final isAuthLoading = ref.watch(isAuthLoadingProvider2); final api = ref.watch(apiServiceProvider);