feat(ai-scribe): Fix click on response text of AI, dialog to be disappeared

This commit is contained in:
dab246
2025-12-19 09:59:38 +07:00
committed by Dat H. Pham
parent 2b6504f8be
commit 89eb1ecc71
3 changed files with 73 additions and 66 deletions
@@ -67,7 +67,6 @@ class AiScribeModalManager {
crossAxisAlignment: crossAxisAlignment, crossAxisAlignment: crossAxisAlignment,
onSelectAiScribeSuggestionAction: onSelectAiScribeSuggestionAction, onSelectAiScribeSuggestionAction: onSelectAiScribeSuggestionAction,
), ),
barrierDismissible: false,
barrierColor: AIScribeColors.dialogBarrier, barrierColor: AIScribeColors.dialogBarrier,
); );
} }
@@ -39,7 +39,8 @@ class AiScribeModalWidget extends StatelessWidget {
)) ))
.toList(); .toList();
final dialogContent = Column( final dialogContent = PointerInterceptor(
child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
spacing: AIScribeSizes.fieldSpacing, spacing: AIScribeSizes.fieldSpacing,
@@ -67,6 +68,7 @@ class AiScribeModalWidget extends StatelessWidget {
), ),
), ),
], ],
),
); );
if (buttonPosition != null && buttonSize != null) { if (buttonPosition != null && buttonSize != null) {
@@ -102,11 +104,14 @@ class AiScribeModalWidget extends StatelessWidget {
: position.dy; : position.dy;
return PointerInterceptor( return PointerInterceptor(
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: Navigator.of(context).pop,
child: Stack( child: Stack(
children: [ children: [
Positioned.fill(
child: GestureDetector(
behavior: HitTestBehavior.translucent,
onTap: Navigator.of(context).pop,
),
),
PositionedDirectional( PositionedDirectional(
start: position.dx, start: position.dx,
top: top, top: top,
@@ -114,7 +119,6 @@ class AiScribeModalWidget extends StatelessWidget {
), ),
], ],
), ),
),
); );
} }
@@ -109,11 +109,14 @@ class _AiScribeSuggestionWidgetState extends State<AiScribeSuggestionWidget> {
); );
return PointerInterceptor( return PointerInterceptor(
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: _handleClickOutside,
child: Stack( child: Stack(
children: [ children: [
Positioned.fill(
child: GestureDetector(
behavior: HitTestBehavior.translucent,
onTap: _handleClickOutside,
),
),
PositionedDirectional( PositionedDirectional(
start: layout.offset.dx, start: layout.offset.dx,
top: layout.top, top: layout.top,
@@ -126,7 +129,6 @@ class _AiScribeSuggestionWidgetState extends State<AiScribeSuggestionWidget> {
), ),
], ],
), ),
),
); );
} }
@@ -177,7 +179,8 @@ class _AiScribeSuggestionWidgetState extends State<AiScribeSuggestionWidget> {
required double maxHeight, required double maxHeight,
required Widget child, required Widget child,
}) { }) {
return Container( return PointerInterceptor(
child: Container(
width: width, width: width,
constraints: BoxConstraints( constraints: BoxConstraints(
minHeight: AIScribeSizes.suggestionModalMinHeight, minHeight: AIScribeSizes.suggestionModalMinHeight,
@@ -192,6 +195,7 @@ class _AiScribeSuggestionWidgetState extends State<AiScribeSuggestionWidget> {
boxShadow: AIScribeShadows.modal, boxShadow: AIScribeShadows.modal,
), ),
child: child, child: child,
),
); );
} }