TF-1358 Fix can not use advanced search in email view

This commit is contained in:
dab246
2022-12-28 16:22:19 +07:00
committed by Dat H. Pham
parent d9d0b71d35
commit f849766545
4 changed files with 44 additions and 32 deletions
@@ -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:model/model.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/composer/domain/model/contact_suggestion_source.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,
pageBuilder: (context, animation, secondaryAnimation) {
return Dialog(
elevation: 0,
backgroundColor: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(18.0)),
elevation: 0,
backgroundColor: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(18.0)),
child: PointerInterceptor(
child: MultipleViewDateRangePicker(
confirmText: AppLocalizations.of(context).setDate,
cancelText: AppLocalizations.of(context).cancel,
@@ -300,7 +302,8 @@ class AdvancedFilterController extends BaseController {
setDateActionCallback: ({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_svg/flutter_svg.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/email/presentation/email_view.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 {
return PortalTarget(
visible: searchController.isAdvancedSearchViewOpen.isTrue,
portalFollower: GestureDetector(
portalFollower: PointerInterceptor(
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () => searchController.selectOpenAdvanceSearch()),
),
child: PortalTarget(
visible: searchController.isAdvancedSearchViewOpen.isTrue,
anchor: const Aligned(
@@ -2,6 +2,7 @@ import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:flutter/material.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';
class AdvancedSearchFilterOverlay extends StatelessWidget {
@@ -17,31 +18,33 @@ class AdvancedSearchFilterOverlay extends StatelessWidget {
Widget build(BuildContext context) {
final responsiveUtils = Get.find<ResponsiveUtils>();
return GestureDetector(
onTap: () => FocusManager.instance.primaryFocus?.unfocus(),
child: Padding(
padding: const EdgeInsets.only(top: 4, bottom: 16),
child: Container(
constraints: BoxConstraints(
maxHeight: _getHeightOverlay(context, responsiveUtils),
),
width: maxWidth ?? 660,
padding: const EdgeInsets.all(32),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16),
boxShadow: const [
BoxShadow(
color: AppColor.colorShadowComposer,
blurRadius: 32,
offset: Offset.zero),
BoxShadow(
color: AppColor.colorDropShadow,
blurRadius: 4,
offset: Offset.zero),
]),
child: SingleChildScrollView(
child: AdvancedSearchInputForm(),
return PointerInterceptor(
child: GestureDetector(
onTap: () => FocusManager.instance.primaryFocus?.unfocus(),
child: Padding(
padding: const EdgeInsets.only(top: 4, bottom: 16),
child: Container(
constraints: BoxConstraints(
maxHeight: _getHeightOverlay(context, responsiveUtils),
),
width: maxWidth ?? 660,
padding: const EdgeInsets.all(32),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16),
boxShadow: const [
BoxShadow(
color: AppColor.colorShadowComposer,
blurRadius: 32,
offset: Offset.zero),
BoxShadow(
color: AppColor.colorDropShadow,
blurRadius: 4,
offset: Offset.zero),
]),
child: SingleChildScrollView(
child: AdvancedSearchInputForm(),
),
),
),
),
@@ -5,6 +5,7 @@ import 'package:flutter_portal/flutter_portal.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.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/mailbox_dashboard/domain/model/recent_search.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(
visible: controller.isAdvancedSearchViewOpen.isTrue,
portalFollower: GestureDetector(
portalFollower: PointerInterceptor(
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () => controller.selectOpenAdvanceSearch()),
),
child: PortalTarget(
visible: controller.isAdvancedSearchViewOpen.isTrue,
anchor: const Aligned(