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,
onSelectAiScribeSuggestionAction: onSelectAiScribeSuggestionAction,
),
barrierDismissible: false,
barrierColor: AIScribeColors.dialogBarrier,
);
}
@@ -39,7 +39,8 @@ class AiScribeModalWidget extends StatelessWidget {
))
.toList();
final dialogContent = Column(
final dialogContent = PointerInterceptor(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
spacing: AIScribeSizes.fieldSpacing,
@@ -67,6 +68,7 @@ class AiScribeModalWidget extends StatelessWidget {
),
),
],
),
);
if (buttonPosition != null && buttonSize != null) {
@@ -102,11 +104,14 @@ class AiScribeModalWidget extends StatelessWidget {
: position.dy;
return PointerInterceptor(
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: Navigator.of(context).pop,
child: Stack(
children: [
Positioned.fill(
child: GestureDetector(
behavior: HitTestBehavior.translucent,
onTap: Navigator.of(context).pop,
),
),
PositionedDirectional(
start: position.dx,
top: top,
@@ -114,7 +119,6 @@ class AiScribeModalWidget extends StatelessWidget {
),
],
),
),
);
}
@@ -109,11 +109,14 @@ class _AiScribeSuggestionWidgetState extends State<AiScribeSuggestionWidget> {
);
return PointerInterceptor(
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: _handleClickOutside,
child: Stack(
children: [
Positioned.fill(
child: GestureDetector(
behavior: HitTestBehavior.translucent,
onTap: _handleClickOutside,
),
),
PositionedDirectional(
start: layout.offset.dx,
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 Widget child,
}) {
return Container(
return PointerInterceptor(
child: Container(
width: width,
constraints: BoxConstraints(
minHeight: AIScribeSizes.suggestionModalMinHeight,
@@ -192,6 +195,7 @@ class _AiScribeSuggestionWidgetState extends State<AiScribeSuggestionWidget> {
boxShadow: AIScribeShadows.modal,
),
child: child,
),
);
}