Skip to content

Commit 410f428

Browse files
committed
Hide the SegmentedControl only visually, as it is still needed for the filter function
1 parent 5d040dc commit 410f428

5 files changed

Lines changed: 30 additions & 17 deletions

File tree

.changeset/fuzzy-baboons-grow.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@openproject/primer-view-components': patch
3+
---
4+
5+
Change signature to hide the SegmentedControl in FilterableTreeView

app/components/primer/open_project/filterable_tree_view.html.erb

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
<%= render(Primer::BaseComponent.new(**@system_arguments)) do %>
22
<%= render(Primer::Alpha::Stack.new) do %>
33
<%= render(Primer::Alpha::Stack.new(wrap: :reverse, direction: :horizontal, align: :center)) do %>
4-
<%= render(Primer::Alpha::Stack.new(wrap: :wrap, direction: :horizontal, align: :center)) do %>
5-
<% if @filter_mode_control.present? %>
6-
<%= render(Primer::Alpha::StackItem.new) do %>
7-
<%= render(@filter_mode_control) %>
8-
<% end %>
4+
<%= render(Primer::ConditionalWrapper.new(condition: !hide_filter_mode_control? && !hide_include_sub_items_check_box?,
5+
component: Primer::Alpha::Stack, wrap: :wrap, direction: :horizontal, align: :center)) do %>
6+
<%= render(Primer::Alpha::StackItem.new(hidden: hide_filter_mode_control?)) do %>
7+
<%= render(@filter_mode_control) %>
98
<% end %>
10-
<%= render(Primer::Alpha::StackItem.new(hidden: @include_sub_items_check_box_arguments[:hidden])) do %>
9+
<%= render(Primer::Alpha::StackItem.new(hidden: hide_include_sub_items_check_box?)) do %>
1110
<%= render(@include_sub_items_check_box) do |input| %>
1211
<% input.merge_input_arguments!(form: "") %>
1312
<% end %>

app/components/primer/open_project/filterable_tree_view.rb

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,8 @@ class FilterableTreeView < Primer::Component
119119
DEFAULT_FILTER_MODE_CONTROL_ARGUMENTS = {
120120
aria: {
121121
label: I18n.t("filterable_tree_view.filter_mode.label")
122-
}
122+
},
123+
hidden: false,
123124
}
124125

125126
DEFAULT_FILTER_MODE_CONTROL_ARGUMENTS.freeze
@@ -186,15 +187,15 @@ def initialize(
186187

187188
@filter_input = Primer::Alpha::TextField.new(**filter_input_arguments)
188189

189-
unless filter_mode_control_arguments == :none
190-
filter_mode_control_arguments[:data] = merge_data(
191-
filter_mode_control_arguments, {
192-
data: { target: "filterable-tree-view.filterModeControlList" }
193-
}
194-
)
195190

196-
@filter_mode_control = Primer::Alpha::SegmentedControl.new(**filter_mode_control_arguments)
197-
end
191+
@filter_mode_control_arguments = filter_mode_control_arguments.reverse_merge(DEFAULT_FILTER_MODE_CONTROL_ARGUMENTS)
192+
@filter_mode_control_arguments[:data] = merge_data(
193+
@filter_mode_control_arguments, {
194+
data: { target: "filterable-tree-view.filterModeControlList" }
195+
}
196+
)
197+
198+
@filter_mode_control = Primer::Alpha::SegmentedControl.new(**@filter_mode_control_arguments)
198199

199200
@include_sub_items_check_box_arguments = include_sub_items_check_box_arguments.reverse_merge(DEFAULT_INCLUDE_SUB_ITEMS_CHECK_BOX_ARGUMENTS)
200201

@@ -255,6 +256,14 @@ def before_render
255256
with_default_filter_modes
256257
end
257258
end
259+
260+
def hide_filter_mode_control?
261+
@filter_mode_control_arguments[:hidden]
262+
end
263+
264+
def hide_include_sub_items_check_box?
265+
@include_sub_items_check_box_arguments[:hidden]
266+
end
258267
end
259268
end
260269
end

previews/primer/open_project/filterable_tree_view_preview/hide_segmented_control.html.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<%= render(Primer::OpenProject::FilterableTreeView.new(filter_mode_control_arguments: :none)) do |tree| %>
1+
<%= render(Primer::OpenProject::FilterableTreeView.new(filter_mode_control_arguments: { hidden: true })) do |tree| %>
22
<% tree.with_sub_tree(label: "Students", expanded: expanded) do |hogwarts| %>
33
<% hogwarts.with_sub_tree(label: "Ravenclaw", expanded: expanded) do |ravenclaw| %>
44
<% ravenclaw.with_leaf(label: "Luna Lovegood") %>

previews/primer/open_project/filterable_tree_view_preview/playground.html.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<%= render(Primer::OpenProject::FilterableTreeView.new(
22
include_sub_items_check_box_arguments: { hidden: !show_checkbox },
3-
**(show_segmented_control ? {} : { filter_mode_control_arguments: :none })
3+
filter_mode_control_arguments: { hidden: !show_segmented_control }
44
)) do |tree| %>
55
<% tree.with_sub_tree(label: "Students", expanded: expanded) do |hogwarts| %>
66
<% hogwarts.with_sub_tree(label: "Ravenclaw", expanded: expanded) do |ravenclaw| %>

0 commit comments

Comments
 (0)