TF-1358 Fix can not use advanced search in email view
This commit is contained in:
+8
-5
@@ -9,6 +9,7 @@ import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
|||||||
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
import 'package:permission_handler/permission_handler.dart';
|
import 'package:permission_handler/permission_handler.dart';
|
||||||
|
import 'package:pointer_interceptor/pointer_interceptor.dart';
|
||||||
import 'package:tmail_ui_user/features/base/base_controller.dart';
|
import 'package:tmail_ui_user/features/base/base_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/domain/model/contact_suggestion_source.dart';
|
import 'package:tmail_ui_user/features/composer/domain/model/contact_suggestion_source.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/domain/state/get_autocomplete_state.dart';
|
import 'package:tmail_ui_user/features/composer/domain/state/get_autocomplete_state.dart';
|
||||||
@@ -284,10 +285,11 @@ class AdvancedFilterController extends BaseController {
|
|||||||
barrierColor: Colors.black54,
|
barrierColor: Colors.black54,
|
||||||
pageBuilder: (context, animation, secondaryAnimation) {
|
pageBuilder: (context, animation, secondaryAnimation) {
|
||||||
return Dialog(
|
return Dialog(
|
||||||
elevation: 0,
|
elevation: 0,
|
||||||
backgroundColor: Colors.white,
|
backgroundColor: Colors.white,
|
||||||
shape: RoundedRectangleBorder(
|
shape: RoundedRectangleBorder(
|
||||||
borderRadius: BorderRadius.circular(18.0)),
|
borderRadius: BorderRadius.circular(18.0)),
|
||||||
|
child: PointerInterceptor(
|
||||||
child: MultipleViewDateRangePicker(
|
child: MultipleViewDateRangePicker(
|
||||||
confirmText: AppLocalizations.of(context).setDate,
|
confirmText: AppLocalizations.of(context).setDate,
|
||||||
cancelText: AppLocalizations.of(context).cancel,
|
cancelText: AppLocalizations.of(context).cancel,
|
||||||
@@ -300,7 +302,8 @@ class AdvancedFilterController extends BaseController {
|
|||||||
setDateActionCallback: ({startDate, endDate}) {
|
setDateActionCallback: ({startDate, endDate}) {
|
||||||
_handleSelectDateRangeResult(context, startDate, endDate);
|
_handleSelectDateRangeResult(context, startDate, endDate);
|
||||||
},
|
},
|
||||||
)
|
),
|
||||||
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter_portal/flutter_portal.dart';
|
import 'package:flutter_portal/flutter_portal.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
import 'package:pointer_interceptor/pointer_interceptor.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/presentation/composer_view_web.dart';
|
import 'package:tmail_ui_user/features/composer/presentation/composer_view_web.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/email_view.dart';
|
import 'package:tmail_ui_user/features/email/presentation/email_view.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read_state.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read_state.dart';
|
||||||
@@ -251,9 +252,11 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
|||||||
} else {
|
} else {
|
||||||
return PortalTarget(
|
return PortalTarget(
|
||||||
visible: searchController.isAdvancedSearchViewOpen.isTrue,
|
visible: searchController.isAdvancedSearchViewOpen.isTrue,
|
||||||
portalFollower: GestureDetector(
|
portalFollower: PointerInterceptor(
|
||||||
|
child: GestureDetector(
|
||||||
behavior: HitTestBehavior.opaque,
|
behavior: HitTestBehavior.opaque,
|
||||||
onTap: () => searchController.selectOpenAdvanceSearch()),
|
onTap: () => searchController.selectOpenAdvanceSearch()),
|
||||||
|
),
|
||||||
child: PortalTarget(
|
child: PortalTarget(
|
||||||
visible: searchController.isAdvancedSearchViewOpen.isTrue,
|
visible: searchController.isAdvancedSearchViewOpen.isTrue,
|
||||||
anchor: const Aligned(
|
anchor: const Aligned(
|
||||||
|
|||||||
+28
-25
@@ -2,6 +2,7 @@ import 'package:core/presentation/extensions/color_extension.dart';
|
|||||||
import 'package:core/presentation/utils/responsive_utils.dart';
|
import 'package:core/presentation/utils/responsive_utils.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
import 'package:pointer_interceptor/pointer_interceptor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_filter_form.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_filter_form.dart';
|
||||||
|
|
||||||
class AdvancedSearchFilterOverlay extends StatelessWidget {
|
class AdvancedSearchFilterOverlay extends StatelessWidget {
|
||||||
@@ -17,31 +18,33 @@ class AdvancedSearchFilterOverlay extends StatelessWidget {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final responsiveUtils = Get.find<ResponsiveUtils>();
|
final responsiveUtils = Get.find<ResponsiveUtils>();
|
||||||
|
|
||||||
return GestureDetector(
|
return PointerInterceptor(
|
||||||
onTap: () => FocusManager.instance.primaryFocus?.unfocus(),
|
child: GestureDetector(
|
||||||
child: Padding(
|
onTap: () => FocusManager.instance.primaryFocus?.unfocus(),
|
||||||
padding: const EdgeInsets.only(top: 4, bottom: 16),
|
child: Padding(
|
||||||
child: Container(
|
padding: const EdgeInsets.only(top: 4, bottom: 16),
|
||||||
constraints: BoxConstraints(
|
child: Container(
|
||||||
maxHeight: _getHeightOverlay(context, responsiveUtils),
|
constraints: BoxConstraints(
|
||||||
),
|
maxHeight: _getHeightOverlay(context, responsiveUtils),
|
||||||
width: maxWidth ?? 660,
|
),
|
||||||
padding: const EdgeInsets.all(32),
|
width: maxWidth ?? 660,
|
||||||
decoration: BoxDecoration(
|
padding: const EdgeInsets.all(32),
|
||||||
color: Colors.white,
|
decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.circular(16),
|
color: Colors.white,
|
||||||
boxShadow: const [
|
borderRadius: BorderRadius.circular(16),
|
||||||
BoxShadow(
|
boxShadow: const [
|
||||||
color: AppColor.colorShadowComposer,
|
BoxShadow(
|
||||||
blurRadius: 32,
|
color: AppColor.colorShadowComposer,
|
||||||
offset: Offset.zero),
|
blurRadius: 32,
|
||||||
BoxShadow(
|
offset: Offset.zero),
|
||||||
color: AppColor.colorDropShadow,
|
BoxShadow(
|
||||||
blurRadius: 4,
|
color: AppColor.colorDropShadow,
|
||||||
offset: Offset.zero),
|
blurRadius: 4,
|
||||||
]),
|
offset: Offset.zero),
|
||||||
child: SingleChildScrollView(
|
]),
|
||||||
child: AdvancedSearchInputForm(),
|
child: SingleChildScrollView(
|
||||||
|
child: AdvancedSearchInputForm(),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import 'package:flutter_portal/flutter_portal.dart';
|
|||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:model/email/presentation_email.dart';
|
import 'package:model/email/presentation_email.dart';
|
||||||
|
import 'package:pointer_interceptor/pointer_interceptor.dart';
|
||||||
import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
|
import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/recent_search.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/recent_search.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
||||||
@@ -34,9 +35,11 @@ class SearchInputFormWidget extends StatelessWidget with AppLoaderMixin {
|
|||||||
|
|
||||||
return PortalTarget(
|
return PortalTarget(
|
||||||
visible: controller.isAdvancedSearchViewOpen.isTrue,
|
visible: controller.isAdvancedSearchViewOpen.isTrue,
|
||||||
portalFollower: GestureDetector(
|
portalFollower: PointerInterceptor(
|
||||||
|
child: GestureDetector(
|
||||||
behavior: HitTestBehavior.opaque,
|
behavior: HitTestBehavior.opaque,
|
||||||
onTap: () => controller.selectOpenAdvanceSearch()),
|
onTap: () => controller.selectOpenAdvanceSearch()),
|
||||||
|
),
|
||||||
child: PortalTarget(
|
child: PortalTarget(
|
||||||
visible: controller.isAdvancedSearchViewOpen.isTrue,
|
visible: controller.isAdvancedSearchViewOpen.isTrue,
|
||||||
anchor: const Aligned(
|
anchor: const Aligned(
|
||||||
|
|||||||
Reference in New Issue
Block a user