TF-4229 Add quick search label filter button in dashboard view
This commit is contained in:
@@ -28,6 +28,7 @@ mixin PopupContextMenuActionMixin {
|
||||
required OnContextMenuActionClick onContextMenuActionClick,
|
||||
Key? key,
|
||||
bool useGroupedActions = false,
|
||||
double? maxHeight,
|
||||
}) async {
|
||||
return await showModalBottomSheet(
|
||||
context: context,
|
||||
@@ -42,6 +43,9 @@ mixin PopupContextMenuActionMixin {
|
||||
),
|
||||
backgroundColor: Colors.white,
|
||||
barrierColor: Colors.black.withValues(alpha: 0.2),
|
||||
constraints: BoxConstraints(
|
||||
maxHeight: maxHeight ?? double.infinity,
|
||||
),
|
||||
builder: (_) {
|
||||
return PointerInterceptor(
|
||||
child: Container(
|
||||
@@ -63,6 +67,7 @@ mixin PopupContextMenuActionMixin {
|
||||
BuildContext context,
|
||||
RelativeRect position,
|
||||
List<PopupMenuEntry> popupMenuItems,
|
||||
{double? maxHeight}
|
||||
) async {
|
||||
return await showMenu(
|
||||
context: context,
|
||||
@@ -74,7 +79,11 @@ mixin PopupContextMenuActionMixin {
|
||||
shape: const RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.all(Radius.circular(6)),
|
||||
),
|
||||
constraints: const BoxConstraints(maxWidth: 300, minWidth: 178),
|
||||
constraints: BoxConstraints(
|
||||
maxWidth: 300,
|
||||
minWidth: 178,
|
||||
maxHeight: maxHeight ?? double.infinity,
|
||||
),
|
||||
items: popupMenuItems,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -46,6 +46,7 @@ class _PopupMenuItemActionWidgetState extends State<PopupMenuItemActionWidget> {
|
||||
Widget? iconWidget;
|
||||
Widget? selectedIconWidget;
|
||||
bool isSelected = false;
|
||||
bool isArrangeRTL = true;
|
||||
|
||||
if (widget.menuAction is PopupMenuItemActionRequiredIcon) {
|
||||
final specificMenuAction =
|
||||
@@ -75,6 +76,7 @@ class _PopupMenuItemActionWidgetState extends State<PopupMenuItemActionWidget> {
|
||||
);
|
||||
isSelected =
|
||||
specificMenuAction.selectedAction == widget.menuAction.action;
|
||||
isArrangeRTL = specificMenuAction.isArrangeRTL;
|
||||
} else if (widget.menuAction is PopupMenuItemActionRequiredFull) {
|
||||
final specificMenuAction =
|
||||
widget.menuAction as PopupMenuItemActionRequiredFull;
|
||||
@@ -100,6 +102,7 @@ class _PopupMenuItemActionWidgetState extends State<PopupMenuItemActionWidget> {
|
||||
);
|
||||
isSelected =
|
||||
specificMenuAction.selectedAction == widget.menuAction.action;
|
||||
isArrangeRTL = specificMenuAction.isArrangeRTL;
|
||||
} else if (widget.menuAction
|
||||
is PopupMenuItemActionRequiredIconWithMultipleSelected) {
|
||||
final specificMenuAction = widget.menuAction
|
||||
@@ -126,6 +129,7 @@ class _PopupMenuItemActionWidgetState extends State<PopupMenuItemActionWidget> {
|
||||
);
|
||||
isSelected =
|
||||
specificMenuAction.selectedActions.contains(widget.menuAction.action);
|
||||
isArrangeRTL = specificMenuAction.isArrangeRTL;
|
||||
}
|
||||
|
||||
if (widget.menuAction is PopupMenuItemEmailAction &&
|
||||
@@ -217,6 +221,11 @@ class _PopupMenuItemActionWidgetState extends State<PopupMenuItemActionWidget> {
|
||||
child: Row(
|
||||
children: [
|
||||
if (iconWidget != null) iconWidget,
|
||||
if (!isArrangeRTL && selectedIconWidget != null)
|
||||
Padding(
|
||||
padding: const EdgeInsetsDirectional.only(end: 16),
|
||||
child: selectedIconWidget,
|
||||
),
|
||||
Expanded(
|
||||
child: Text(
|
||||
widget.menuAction.actionName,
|
||||
@@ -227,7 +236,7 @@ class _PopupMenuItemActionWidgetState extends State<PopupMenuItemActionWidget> {
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
),
|
||||
if (isSelected && selectedIconWidget != null)
|
||||
if (isArrangeRTL && isSelected && selectedIconWidget != null)
|
||||
selectedIconWidget,
|
||||
],
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user