TF-691 Hide advanced search menu overlay when click outside menu
This commit is contained in:
@@ -161,10 +161,17 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
||||
}),
|
||||
const SizedBox(width: 16),
|
||||
Obx(() => !searchController.isSearchActive() ? const Spacer() : const SizedBox.shrink()),
|
||||
Obx(() => searchController.isSearchActive()
|
||||
? Expanded(child: _buildSearchForm(context))
|
||||
: PortalTarget(
|
||||
visible: controller.searchController.isAdvancedSearchViewOpen.isTrue,
|
||||
Obx(() {
|
||||
if (searchController.isSearchActive()) {
|
||||
return Expanded(child: _buildSearchForm(context));
|
||||
} else {
|
||||
return PortalTarget(
|
||||
visible: searchController.isAdvancedSearchViewOpen.isTrue,
|
||||
portalFollower: GestureDetector(
|
||||
behavior: HitTestBehavior.opaque,
|
||||
onTap: () => searchController.selectOpenAdvanceSearch()),
|
||||
child: PortalTarget(
|
||||
visible: searchController.isAdvancedSearchViewOpen.isTrue,
|
||||
anchor: const Aligned(
|
||||
follower: Alignment.topRight,
|
||||
target: Alignment.bottomRight,
|
||||
@@ -175,14 +182,19 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
||||
widthFactor: 3,
|
||||
),
|
||||
),
|
||||
portalFollower: responsiveUtils.isMobile(context) ? const SizedBox.shrink() : const AdvancedSearchFilterOverlay(),
|
||||
portalFollower: responsiveUtils.isMobile(context)
|
||||
? const SizedBox.shrink()
|
||||
: const AdvancedSearchFilterOverlay(),
|
||||
child: (SearchBarView(imagePaths)
|
||||
..hintTextSearch(AppLocalizations.of(context).search_emails)
|
||||
..maxSizeWidth(240)
|
||||
..addOnOpenSearchViewAction(() => searchController.enableSearch())
|
||||
..addRightButton(IconOpenAdvancedSearchWidget(context)))
|
||||
.build(),
|
||||
)),
|
||||
),
|
||||
);
|
||||
}
|
||||
}),
|
||||
Obx(() => !searchController.isSearchActive() ? const SizedBox(width: 16) : const SizedBox.shrink()),
|
||||
Obx(() => (AvatarBuilder()
|
||||
..text(controller.userProfile.value?.getAvatarText() ?? '')
|
||||
@@ -427,6 +439,11 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
||||
borderRadius: BorderRadius.all(Radius.circular(10)),
|
||||
color: AppColor.colorBgSearchBar),
|
||||
height: 45,
|
||||
child: PortalTarget(
|
||||
visible: searchController.isAdvancedSearchViewOpen.isTrue,
|
||||
portalFollower: GestureDetector(
|
||||
behavior: HitTestBehavior.opaque,
|
||||
onTap: () => searchController.selectOpenAdvanceSearch()),
|
||||
child: PortalTarget(
|
||||
visible: searchController.isAdvancedSearchViewOpen.isTrue,
|
||||
anchor: const Aligned(
|
||||
@@ -439,7 +456,9 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
||||
widthFactor: 1,
|
||||
),
|
||||
),
|
||||
portalFollower: const AdvancedSearchFilterOverlay(),
|
||||
portalFollower: responsiveUtils.isMobile(context)
|
||||
? const SizedBox.shrink()
|
||||
: const AdvancedSearchFilterOverlay(),
|
||||
child: QuickSearchInputForm<PresentationEmail, RecentSearch>(
|
||||
textFieldConfiguration: QuickSearchTextFieldConfiguration(
|
||||
controller: searchController.searchInputController,
|
||||
@@ -590,6 +609,7 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
||||
OpenEmailDetailedAction(context, presentationEmail));
|
||||
}),
|
||||
),
|
||||
),
|
||||
)),
|
||||
const SizedBox(width: 16),
|
||||
]
|
||||
|
||||
@@ -170,6 +170,11 @@ class ThreadView extends GetWidget<ThreadController> with AppLoaderMixin,
|
||||
|
||||
Widget _buildSearchFormInActive(BuildContext context) {
|
||||
return PortalTarget(
|
||||
visible: controller.searchController.isAdvancedSearchViewOpen.isTrue,
|
||||
portalFollower: GestureDetector(
|
||||
behavior: HitTestBehavior.opaque,
|
||||
onTap: () => controller.searchController.selectOpenAdvanceSearch()),
|
||||
child: PortalTarget(
|
||||
visible: controller.searchController.isAdvancedSearchViewOpen.isTrue,
|
||||
anchor: const Aligned(
|
||||
follower: Alignment.topLeft,
|
||||
@@ -181,12 +186,15 @@ class ThreadView extends GetWidget<ThreadController> with AppLoaderMixin,
|
||||
widthFactor: 1,
|
||||
),
|
||||
),
|
||||
portalFollower: _responsiveUtils.isMobile(context) ? const SizedBox.shrink() : const AdvancedSearchFilterOverlay(),
|
||||
portalFollower: _responsiveUtils.isMobile(context)
|
||||
? const SizedBox.shrink()
|
||||
: const AdvancedSearchFilterOverlay(),
|
||||
child: (SearchBarView(_imagePaths)
|
||||
..hintTextSearch(AppLocalizations.of(context).search_emails)
|
||||
..addOnOpenSearchViewAction(() => controller.enableSearch(context))
|
||||
..addRightButton(IconOpenAdvancedSearchWidget(context)))
|
||||
.build(),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -204,6 +212,11 @@ class ThreadView extends GetWidget<ThreadController> with AppLoaderMixin,
|
||||
borderRadius: BorderRadius.all(Radius.circular(10)),
|
||||
color: AppColor.colorBgSearchBar),
|
||||
height: 45,
|
||||
child: PortalTarget(
|
||||
visible: controller.searchController.isAdvancedSearchViewOpen.isTrue,
|
||||
portalFollower: GestureDetector(
|
||||
behavior: HitTestBehavior.opaque,
|
||||
onTap: () => controller.searchController.selectOpenAdvanceSearch()),
|
||||
child: PortalTarget(
|
||||
visible: controller.searchController.isAdvancedSearchViewOpen.isTrue,
|
||||
anchor: const Aligned(
|
||||
@@ -216,7 +229,9 @@ class ThreadView extends GetWidget<ThreadController> with AppLoaderMixin,
|
||||
widthFactor: 1,
|
||||
),
|
||||
),
|
||||
portalFollower: _responsiveUtils.isMobile(context) ? const SizedBox.shrink() : const AdvancedSearchFilterOverlay(),
|
||||
portalFollower: _responsiveUtils.isMobile(context)
|
||||
? const SizedBox.shrink()
|
||||
: const AdvancedSearchFilterOverlay(),
|
||||
child: QuickSearchInputForm<PresentationEmail, RecentSearch>(
|
||||
textFieldConfiguration: QuickSearchTextFieldConfiguration(
|
||||
controller: controller.searchController.searchInputController,
|
||||
@@ -364,6 +379,7 @@ class ThreadView extends GetWidget<ThreadController> with AppLoaderMixin,
|
||||
presentationEmail);
|
||||
}),
|
||||
),
|
||||
),
|
||||
)),
|
||||
const SizedBox(width: 16),
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user