@@ -170,19 +170,27 @@ class SubHeader < Primer::Component
170170 }
171171 }
172172
173- # Quick filters shown in the left pane next to the search bar (0–5 items).
174- # Hidden on smaller screens. Requires all_filters_button to be set when used.
173+ # A slot for a generic sorting component. Will be rendered next to the search input
174+ renders_one :quick_sort , lambda { |**kwargs |
175+ deny_tag_argument ( **kwargs )
176+
177+ QuickActionComponent . new ( **kwargs )
178+ }
179+
180+ # A slot for a generic sorting component. Will be rendered next to the sorting button
181+ renders_one :quick_group , lambda { |**kwargs |
182+ deny_tag_argument ( **kwargs )
183+
184+ QuickActionComponent . new ( **kwargs )
185+ }
186+
187+ # Quick filters shown in the left pane next to the search bar (0–5 items total across all types).
188+ # Hidden on smaller screens when more than one `quick_filter` is provided. Requires `filter_button` when using more than one `quick_filter`.
175189 # Supports ActionMenus, Buttons, IconButtons, SelectPanels, and SegmentedControls inside the block.
176190 renders_many :quick_filters , lambda { |**kwargs |
177191 deny_tag_argument ( **kwargs )
178- kwargs [ :tag ] = :div
179- kwargs [ :mr ] ||= 2
180- kwargs [ :classes ] = class_names (
181- "SubHeader-hiddenOnExpand" ,
182- kwargs [ :classes ]
183- )
184192
185- QuickFilter . new ( **kwargs )
193+ QuickActionComponent . new ( **kwargs )
186194 }
187195
188196 renders_one :segmented_control , lambda { |**system_arguments , &block |
@@ -238,12 +246,14 @@ def initialize(collapsed_search: false, **system_arguments)
238246 end
239247
240248 def before_render
249+ all_quick_actions = [ quick_sort , quick_group ] . compact + quick_filters
250+
241251 if quick_filters . size > 1 && filter_button . nil?
242252 raise ArgumentError , "You must provide a filter_button when using quick_filters."
243253 end
244254
245255 if quick_filters . size > 5
246- raise ArgumentError , "SubHeader supports a maximum of 5 quick_filters, got #{ quick_filters . size } ."
256+ raise ArgumentError , "SubHeader supports a maximum of 5 quick_filters, got #{ all_quick_actions . size } ."
247257 end
248258
249259 if quick_filters . size > 1
@@ -254,7 +264,7 @@ def before_render
254264
255265 @system_arguments [ :classes ] = class_names (
256266 @system_arguments [ :classes ] ,
257- "SubHeader--emptyLeftPane" => !segmented_control? && !filter_button && !filter_input && quick_filters . empty?
267+ "SubHeader--emptyLeftPane" => !segmented_control? && !filter_button && !filter_input && all_quick_actions . empty?
258268 )
259269 end
260270
0 commit comments