TF-4229 Add quick search label filter button in dashboard view

This commit is contained in:
dab246
2026-01-05 12:20:34 +07:00
committed by Dat H. Pham
parent a35b263dca
commit cc508c210a
10 changed files with 125 additions and 38 deletions
@@ -62,7 +62,7 @@ mixin SearchLabelFilterModalMixin on PopupContextMenuActionMixin {
);
}).toList();
openPopupMenuAction(context, position, popupMenuItems);
openPopupMenuAction(context, position, popupMenuItems, maxHeight: 400);
}
void openContextMenuLabelsFilter({
@@ -87,6 +87,7 @@ mixin SearchLabelFilterModalMixin on PopupContextMenuActionMixin {
popBack();
onSelectLabelsActions(menuAction.action);
},
maxHeight: 400,
);
}
}
@@ -267,35 +267,43 @@ class SearchEmailView extends GetWidget<SearchEmailController>
scrollbars: false
),
scrollController: controller.listSearchFilterScrollController,
child: ListView(
key: const Key('search_filter_list_view'),
scrollDirection: Axis.horizontal,
shrinkWrap: true,
controller: controller.listSearchFilterScrollController,
padding: SearchEmailViewStyle.getListSearchFilterButtonPadding(
context,
controller.responsiveUtils
),
children: [
_buildSearchFilterButton(context, QuickSearchFilter.folder),
SearchEmailViewStyle.searchFilterSizeBoxMargin,
_buildSearchFilterButton(context, QuickSearchFilter.labels),
SearchEmailViewStyle.searchFilterSizeBoxMargin,
_buildSearchFilterButton(context, QuickSearchFilter.from),
SearchEmailViewStyle.searchFilterSizeBoxMargin,
_buildSearchFilterButton(context, QuickSearchFilter.to),
SearchEmailViewStyle.searchFilterSizeBoxMargin,
_buildSearchFilterButton(context, QuickSearchFilter.hasAttachment),
SearchEmailViewStyle.searchFilterSizeBoxMargin,
_buildSearchFilterButton(context, QuickSearchFilter.dateTime),
SearchEmailViewStyle.searchFilterSizeBoxMargin,
_buildSearchFilterButton(context, QuickSearchFilter.starred),
SearchEmailViewStyle.searchFilterSizeBoxMargin,
_buildSearchFilterButton(context, QuickSearchFilter.unread),
SearchEmailViewStyle.searchFilterSizeBoxMargin,
_buildSearchFilterButton(context, QuickSearchFilter.sortBy),
],
),
child: Obx(() {
final isLabelAvailable =
controller.mailboxDashBoardController.isLabelAvailable;
return ListView(
key: const Key('search_filter_list_view'),
scrollDirection: Axis.horizontal,
shrinkWrap: true,
controller: controller.listSearchFilterScrollController,
padding: SearchEmailViewStyle.getListSearchFilterButtonPadding(
context,
controller.responsiveUtils
),
children: [
_buildSearchFilterButton(context, QuickSearchFilter.folder),
SearchEmailViewStyle.searchFilterSizeBoxMargin,
if (isLabelAvailable)
...[
_buildSearchFilterButton(context, QuickSearchFilter.labels),
SearchEmailViewStyle.searchFilterSizeBoxMargin,
],
_buildSearchFilterButton(context, QuickSearchFilter.from),
SearchEmailViewStyle.searchFilterSizeBoxMargin,
_buildSearchFilterButton(context, QuickSearchFilter.to),
SearchEmailViewStyle.searchFilterSizeBoxMargin,
_buildSearchFilterButton(context, QuickSearchFilter.hasAttachment),
SearchEmailViewStyle.searchFilterSizeBoxMargin,
_buildSearchFilterButton(context, QuickSearchFilter.dateTime),
SearchEmailViewStyle.searchFilterSizeBoxMargin,
_buildSearchFilterButton(context, QuickSearchFilter.starred),
SearchEmailViewStyle.searchFilterSizeBoxMargin,
_buildSearchFilterButton(context, QuickSearchFilter.unread),
SearchEmailViewStyle.searchFilterSizeBoxMargin,
_buildSearchFilterButton(context, QuickSearchFilter.sortBy),
],
);
}),
),
),
),