@@ -170,37 +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 total across all types).
174- # Hidden on smaller screens when more than one `quick_filter` is provided. Requires `filter_button` when using more than one `quick_filter`.
175- # Supports ActionMenus, Buttons, IconButtons, SelectPanels, and SegmentedControls inside the block.
176- #
177- # Use `with_sort_quick_filter` for sort controls (renders first),
178- # `with_group_quick_filter` for group controls (renders second),
179- # and `with_quick_filter` for all others (renders last).
180- renders_one :sort_quick_filter , lambda { |**kwargs |
173+ # A slot for a generic sorting component. Will be rendered next to the search input
174+ renders_one :quick_sort , lambda { |**kwargs |
181175 deny_tag_argument ( **kwargs )
182- kwargs [ :tag ] = :div
183- kwargs [ :mr ] ||= 2
184- QuickFilter . new ( **kwargs )
176+
177+ QuickActionComponent . new ( **kwargs )
185178 }
186179
187- renders_one :group_quick_filter , lambda { |**kwargs |
180+ # A slot for a generic sorting component. Will be rendered next to the sorting button
181+ renders_one :quick_group , lambda { |**kwargs |
188182 deny_tag_argument ( **kwargs )
189- kwargs [ :tag ] = :div
190- kwargs [ :mr ] ||= 2
191- QuickFilter . new ( **kwargs )
183+
184+ QuickActionComponent . new ( **kwargs )
192185 }
193186
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`.
189+ # Supports ActionMenus, Buttons, IconButtons, SelectPanels, and SegmentedControls inside the block.
194190 renders_many :quick_filters , lambda { |**kwargs |
195191 deny_tag_argument ( **kwargs )
196- kwargs [ :tag ] = :div
197- kwargs [ :mr ] ||= 2
198- kwargs [ :classes ] = class_names (
199- "SubHeader-hiddenOnExpand" ,
200- kwargs [ :classes ]
201- )
202192
203- QuickFilter . new ( **kwargs )
193+ QuickActionComponent . new ( **kwargs )
204194 }
205195
206196 renders_one :segmented_control , lambda { |**system_arguments , &block |
@@ -256,14 +246,14 @@ def initialize(collapsed_search: false, **system_arguments)
256246 end
257247
258248 def before_render
259- all_qf = [ sort_quick_filter , group_quick_filter ] . compact + quick_filters
249+ all_quick_actions = [ quick_sort , quick_group ] . compact + quick_filters
260250
261251 if quick_filters . size > 1 && filter_button . nil?
262252 raise ArgumentError , "You must provide a filter_button when using quick_filters."
263253 end
264254
265- if all_qf . size > 5
266- raise ArgumentError , "SubHeader supports a maximum of 5 quick_filters, got #{ all_qf . size } ."
255+ if quick_filters . size > 5
256+ raise ArgumentError , "SubHeader supports a maximum of 5 quick_filters, got #{ all_quick_actions . size } ."
267257 end
268258
269259 if quick_filters . size > 1
@@ -274,7 +264,7 @@ def before_render
274264
275265 @system_arguments [ :classes ] = class_names (
276266 @system_arguments [ :classes ] ,
277- "SubHeader--emptyLeftPane" => !segmented_control? && !filter_button && !filter_input && all_qf . empty?
267+ "SubHeader--emptyLeftPane" => !segmented_control? && !filter_button && !filter_input && all_quick_actions . empty?
278268 )
279269 end
280270
0 commit comments