From 269ca7116ced316bbd1d4cb13bdebcba1f842fb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Poizat?= Date: Tue, 10 Feb 2026 14:18:50 +0100 Subject: [PATCH] Display Scribe modals correctly when a keyboard is opened --- .../widgets/modal/ai_scribe_modal_widget.dart | 6 +++++- .../widgets/modal/ai_scribe_suggestion_widget.dart | 8 +++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/scribe/lib/scribe/ai/presentation/widgets/modal/ai_scribe_modal_widget.dart b/scribe/lib/scribe/ai/presentation/widgets/modal/ai_scribe_modal_widget.dart index 0d944eb9d..9ad44f3a5 100644 --- a/scribe/lib/scribe/ai/presentation/widgets/modal/ai_scribe_modal_widget.dart +++ b/scribe/lib/scribe/ai/presentation/widgets/modal/ai_scribe_modal_widget.dart @@ -72,6 +72,10 @@ class AiScribeModalWidget extends StatelessWidget { ); if (buttonPosition != null && buttonSize != null) { + final keyboardHeight = MediaQuery.of(context).viewInsets.bottom; + final screenSize = MediaQuery.of(context).size; + final availableHeight = screenSize.height - keyboardHeight; + final maxHeightModal = hasContent ? AIScribeSizes.searchBarMinHeight + AIScribeSizes.fieldSpacing + @@ -81,7 +85,7 @@ class AiScribeModalWidget extends StatelessWidget { final layoutResult = AnchoredModalLayoutCalculator.calculate( input: AnchoredModalLayoutInput( - screenSize: MediaQuery.of(context).size, + screenSize: Size(screenSize.width, availableHeight), anchorPosition: buttonPosition!, anchorSize: buttonSize!, menuSize: Size( diff --git a/scribe/lib/scribe/ai/presentation/widgets/modal/ai_scribe_suggestion_widget.dart b/scribe/lib/scribe/ai/presentation/widgets/modal/ai_scribe_suggestion_widget.dart index 0c2944ae6..3af57b73b 100644 --- a/scribe/lib/scribe/ai/presentation/widgets/modal/ai_scribe_suggestion_widget.dart +++ b/scribe/lib/scribe/ai/presentation/widgets/modal/ai_scribe_suggestion_widget.dart @@ -49,7 +49,9 @@ class _AiScribeSuggestionWidgetState extends State @override Widget build(BuildContext context) { - final screenSize = MediaQuery.sizeOf(context); + final keyboardHeight = MediaQuery.of(context).viewInsets.bottom; + final screenSize = MediaQuery.of(context).size; + final availableHeight = screenSize.height - keyboardHeight; final modalWidth = min( screenSize.width * AIScribeSizes.mobileFactor, @@ -57,7 +59,7 @@ class _AiScribeSuggestionWidgetState extends State ); final modalMaxHeight = min( - screenSize.height * AIScribeSizes.mobileFactor, + availableHeight * AIScribeSizes.mobileFactor, AIScribeSizes.suggestionModalMaxHeight, ); @@ -76,7 +78,7 @@ class _AiScribeSuggestionWidgetState extends State } final layout = AnchoredModalLayoutCalculator.calculateAnchoredSuggestLayout( - screenSize: screenSize, + screenSize: Size(screenSize.width, availableHeight), anchorPosition: widget.buttonPosition!, anchorSize: widget.buttonSize!, menuSize: Size(modalWidth, modalMaxHeight),