diff --git a/.changeset/wicked-crews-provide.md b/.changeset/wicked-crews-provide.md new file mode 100644 index 0000000000..39100b58cd --- /dev/null +++ b/.changeset/wicked-crews-provide.md @@ -0,0 +1,5 @@ +--- +'@openproject/primer-view-components': patch +--- + +Do not overwrite custom data attributes diff --git a/app/components/primer/open_project/sub_header.rb b/app/components/primer/open_project/sub_header.rb index 4c982c67b0..df6262ed4f 100644 --- a/app/components/primer/open_project/sub_header.rb +++ b/app/components/primer/open_project/sub_header.rb @@ -47,22 +47,16 @@ class SubHeader < Primer::Component system_arguments[:input_width] ||= :medium system_arguments[:data] ||= {} - system_arguments[:data][:target]= "sub-header.filterInput" + system_arguments[:data] = merge_data( + system_arguments, + { data: { target: "sub-header.filterInput" } } + ) system_arguments[:show_clear_button] = true if system_arguments[:show_clear_button].nil? if system_arguments[:show_clear_button] - system_arguments[:data] = merge_data( - system_arguments, - { - data: { - action: <<~JS - input:sub-header#toggleFilterInputClearButton - focus:sub-header#toggleFilterInputClearButton - JS - } - } - ) + system_arguments[:data][:action] ||= "" + system_arguments[:data][:action] += " input:sub-header#toggleFilterInputClearButton focus:sub-header#toggleFilterInputClearButton" end @mobile_filter_trigger = Primer::Beta::IconButton.new(icon: system_arguments[:leading_visual][:icon], diff --git a/test/components/primer/open_project/sub_header_test.rb b/test/components/primer/open_project/sub_header_test.rb index dbcb6f1f38..1026caeeca 100644 --- a/test/components/primer/open_project/sub_header_test.rb +++ b/test/components/primer/open_project/sub_header_test.rb @@ -106,8 +106,7 @@ def test_renders_a_clear_button_when_show_clear_button_is_set assert_selector(".SubHeader") assert_selector( ".SubHeader-filterInput"\ - "[data-action=\"input:sub-header#toggleFilterInputClearButton\n"\ - "focus:sub-header#toggleFilterInputClearButton\n\"]" + "[data-action=\" input:sub-header#toggleFilterInputClearButton focus:sub-header#toggleFilterInputClearButton\"]" ) assert_selector(".FormControl-input-trailingAction[data-action=\"click:primer-text-field#clearContents\"]") end @@ -126,8 +125,7 @@ def test_does_not_render_input_events_when_show_clear_button_is_not_set assert_selector(".SubHeader-filterInput") assert_no_selector( ".SubHeader-filterInput"\ - "[data-action=\"input:sub-header#toggleFilterInputClearButton\n"\ - "focus:sub-header#toggleFilterInputClearButton\n\"]" + "[data-action=\" input:sub-header#toggleFilterInputClearButton focus:sub-header#toggleFilterInputClearButton\"]" ) assert_no_selector(".FormControl-input-trailingAction[data-action=\"click:primer-text-field#clearContents\"]") end