hotfix(ai-scribe): fix Safari keyboard input issue in AI Scribe search bar dialog

This commit is contained in:
dab246
2025-12-22 15:24:36 +07:00
committed by Dat H. Pham
parent 2b70b660f0
commit 29b54a76ee
5 changed files with 35 additions and 15 deletions
@@ -7,12 +7,14 @@ class InlineAiAssistButton extends StatelessWidget {
final ImagePaths imagePaths;
final String? selectedText;
final OnSelectAiScribeSuggestionAction onSelectAiScribeSuggestionAction;
final VoidCallback? onTapFallback;
const InlineAiAssistButton({
super.key,
required this.imagePaths,
required this.onSelectAiScribeSuggestionAction,
this.selectedText,
this.onTapFallback,
});
@override
@@ -40,6 +42,8 @@ class InlineAiAssistButton extends StatelessWidget {
size = renderBox.size;
}
onTapFallback?.call();
await AiScribeModalManager.showAIScribeMenuModal(
imagePaths: imagePaths,
availableCategories: AIScribeMenuCategory.values,
@@ -9,11 +9,13 @@ class AiSelectionOverlay extends StatelessWidget {
required this.selection,
required this.imagePaths,
required this.onSelectAiScribeSuggestionAction,
this.onTapFallback,
});
final TextSelectionModel? selection;
final ImagePaths imagePaths;
final OnSelectAiScribeSuggestionAction onSelectAiScribeSuggestionAction;
final VoidCallback? onTapFallback;
@override
Widget build(BuildContext context) {
@@ -34,6 +36,7 @@ class AiSelectionOverlay extends StatelessWidget {
imagePaths: imagePaths,
selectedText: selectedText,
onSelectAiScribeSuggestionAction: onSelectAiScribeSuggestionAction,
onTapFallback: onTapFallback,
),
),
);
@@ -71,22 +71,26 @@ class _AIScribeBarState extends State<AIScribeBar> {
child: Row(
children: [
Expanded(
child: KeyboardListener(
focusNode: _focusNode,
onKeyEvent: _handleKeyboardEvent,
child: TextField(
controller: _controller,
decoration: InputDecoration(
hintText: ScribeLocalizations.of(context).inputPlaceholder,
hintStyle: AIScribeTextStyles.searchBarHint,
border: InputBorder.none,
contentPadding: const EdgeInsets.symmetric(vertical: 8),
isDense: true,
child: GestureDetector(
behavior: HitTestBehavior.translucent,
onTap: _focusNode.requestFocus,
child: KeyboardListener(
focusNode: _focusNode,
onKeyEvent: _handleKeyboardEvent,
child: TextField(
controller: _controller,
decoration: InputDecoration(
hintText: ScribeLocalizations.of(context).inputPlaceholder,
hintStyle: AIScribeTextStyles.searchBarHint,
border: InputBorder.none,
contentPadding: const EdgeInsets.symmetric(vertical: 8),
isDense: true,
),
style: AIScribeTextStyles.searchBar,
maxLines: null,
keyboardType: TextInputType.multiline,
cursorHeight: 16,
),
style: AIScribeTextStyles.searchBar,
maxLines: null,
keyboardType: TextInputType.multiline,
cursorHeight: 16,
),
),
),