diff --git a/lib/src/model/pluto_column.dart b/lib/src/model/pluto_column.dart index d0cadebc..ef2c42ca 100644 --- a/lib/src/model/pluto_column.dart +++ b/lib/src/model/pluto_column.dart @@ -191,6 +191,15 @@ class PlutoColumn { ///Set suffix icon for filter field Icon? filterSuffixIcon; + /// Set a custom on tap event for the filter suffix icon + Function( + FocusNode focusNode, + TextEditingController controller, + bool enabled, + void Function(String changed) handleOnChanged, + PlutoGridStateManager stateManager, + )? onFilterSuffixTap; + ///Set custom widget @Deprecated("Use new filterWidgetBuilder to provide some parameters") Widget? filterWidget; @@ -257,6 +266,8 @@ class PlutoColumn { this.filterSuffixIcon, @Deprecated("Use new filterWidgetBuilder to provide some parameters") this.filterWidget, + this.filterWidgetBuilder, + this.onFilterSuffixTap, this.enableHideColumnMenuItem = true, this.enableSetColumnsMenuItem = true, this.enableAutoEditing = false, diff --git a/lib/src/ui/columns/pluto_column_filter.dart b/lib/src/ui/columns/pluto_column_filter.dart index e669d515..2f64787d 100644 --- a/lib/src/ui/columns/pluto_column_filter.dart +++ b/lib/src/ui/columns/pluto_column_filter.dart @@ -267,7 +267,20 @@ class PlutoColumnFilterState extends PlutoStateWithChange { onChanged: _handleOnChanged, onEditingComplete: _handleOnEditingComplete, decoration: InputDecoration( - suffixIcon: widget.column.filterSuffixIcon, + suffixIcon: widget.column.filterSuffixIcon != null + ? GestureDetector( + onTap: () { + widget.column.onFilterSuffixTap?.call( + _focusNode, + _controller, + _enabled, + _handleOnChanged, + stateManager, + ); + }, + child: widget.column.filterSuffixIcon, + ) + : null, hintText: widget.column.filterHintText ?? (_enabled ? widget.column.defaultFilter.title : ''), filled: true,