From 254dcbf3ef56474d69d7ba4d910ddf9fe1ca3904 Mon Sep 17 00:00:00 2001 From: Jon Rohan Date: Wed, 2 Nov 2022 00:01:37 +0000 Subject: [PATCH 1/2] Don't update selected state on links --- app/components/primer/alpha/segmented_control/item.rb | 2 +- test/components/primer/alpha/segmented_control_test.rb | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/components/primer/alpha/segmented_control/item.rb b/app/components/primer/alpha/segmented_control/item.rb index d0f18bd109..f7b0302436 100644 --- a/app/components/primer/alpha/segmented_control/item.rb +++ b/app/components/primer/alpha/segmented_control/item.rb @@ -19,7 +19,7 @@ def initialize(label:, selected: false, icon: nil, hide_labels: false, **system_ @selected = selected @system_arguments = system_arguments - @system_arguments[:"data-action"] = "click:segmented-control#select" + @system_arguments[:"data-action"] = "click:segmented-control#select" if system_arguments[:href].nil? @system_arguments[:"aria-current"] = selected @system_arguments[:scheme] = :invisible end diff --git a/test/components/primer/alpha/segmented_control_test.rb b/test/components/primer/alpha/segmented_control_test.rb index 1d0bc6cc87..1cfda97b4b 100644 --- a/test/components/primer/alpha/segmented_control_test.rb +++ b/test/components/primer/alpha/segmented_control_test.rb @@ -51,6 +51,16 @@ def test_renders_full_width assert_selector("segmented-control ul.SegmentedControl.SegmentedControl--fullWidth") end + def test_doesnt_use_control_click_with_href + render_inline(Primer::Alpha::SegmentedControl.new) do |c| + c.with_item(icon: :zap, label: "Item 1", selected: true) { "Item 1" } + c.with_item(tag: :a, href: "#", icon: :zap, label: "Item 2") { "Item 2" } + end + + assert_selector("button[data-action=\"click:segmented-control#select\"]", count: 1) + assert_selector("a[data-action=\"click:segmented-control#select\"]", count: 0) + end + def test_doesnt_render_with_too_many_items error = assert_raises(ArgumentError) do render_inline(Primer::Alpha::SegmentedControl.new) do |c| From 60bd89551202022a097a4c308160453887eca221 Mon Sep 17 00:00:00 2001 From: Jon Rohan Date: Tue, 1 Nov 2022 17:03:57 -0700 Subject: [PATCH 2/2] Create honest-worms-breathe.md --- .changeset/honest-worms-breathe.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/honest-worms-breathe.md diff --git a/.changeset/honest-worms-breathe.md b/.changeset/honest-worms-breathe.md new file mode 100644 index 0000000000..d0efeed41c --- /dev/null +++ b/.changeset/honest-worms-breathe.md @@ -0,0 +1,5 @@ +--- +"@primer/view-components": patch +--- + +SegmentedControl: Don't update selected state on links