hotfix(ai-scribe): fix Safari keyboard input issue in AI Scribe search bar dialog
This commit is contained in:
+3
@@ -101,6 +101,9 @@ extension HandleAiScribeInComposerExtension on ComposerController {
|
||||
}
|
||||
|
||||
Future<void> openAIAssistantModal(Offset? position, Size? size) async {
|
||||
clearFocusRecipients();
|
||||
clearFocusSubject();
|
||||
|
||||
final fullText = await _getTextOnlyContentInEditor();
|
||||
|
||||
await AiScribeModalManager.showAIScribeMenuModal(
|
||||
|
||||
+6
@@ -24,7 +24,13 @@ class ComposerAiScribeSelectionOverlay extends StatelessWidget {
|
||||
imagePaths: controller.imagePaths,
|
||||
onSelectAiScribeSuggestionAction:
|
||||
controller.handleAiScribeSuggestionAction,
|
||||
onTapFallback: _clearComposerInputFocus,
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
void _clearComposerInputFocus() {
|
||||
controller.clearFocusRecipients();
|
||||
controller.clearFocusSubject();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user