From 916b2313ab7a28c8a69fc6fd1778edfaa6d6b46c Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Bellet Date: Wed, 24 May 2023 15:46:56 +0200 Subject: [PATCH] Some links does not include `_panel` suffix. Add if needed. Yep. Sounds like a hack. + Use the right URL anchor with `_panel` in href for each tab + update specs --- app/views/shopping_shared/_tabs.html.haml | 2 +- app/webpacker/controllers/tabs_and_panels_controller.js | 5 ++++- spec/system/consumer/white_label_spec.rb | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/views/shopping_shared/_tabs.html.haml b/app/views/shopping_shared/_tabs.html.haml index aab67618a4..b8c0a8ab8f 100644 --- a/app/views/shopping_shared/_tabs.html.haml +++ b/app/views/shopping_shared/_tabs.html.haml @@ -6,7 +6,7 @@ .columns.small-12.large-8 - shop_tabs.each do |tab| .page - %a{ id: tab[:name], href: "##{tab[:name]}", data: { action: "tabs-and-panels#changeActivePanel tabs-and-panels#changeActiveTab", "tabs-and-panels-target": "tab" }, class: ("selected" if tab[:default]) }=tab[:title] + %a{ id: tab[:name], href: "##{tab[:name]}_panel", data: { action: "tabs-and-panels#changeActivePanel tabs-and-panels#changeActiveTab", "tabs-and-panels-target": "tab" }, class: ("selected" if tab[:default]) }=tab[:title] .columns.large-4.show-for-large-up = render partial: "shopping_shared/order_cycles" - shop_tabs.each do |tab| diff --git a/app/webpacker/controllers/tabs_and_panels_controller.js b/app/webpacker/controllers/tabs_and_panels_controller.js index 0e79aee0ee..0f67dd8c85 100644 --- a/app/webpacker/controllers/tabs_and_panels_controller.js +++ b/app/webpacker/controllers/tabs_and_panels_controller.js @@ -23,7 +23,10 @@ export default class extends Controller { if (anchor[0] == "/") { anchor = anchor.slice(1); } - + // Add _panel to the anchor to match the panel id if needed + if (!anchor.includes("_panel")) { + anchor = `${anchor}_panel`; + } this.updateActivePanel(anchor); // tab diff --git a/spec/system/consumer/white_label_spec.rb b/spec/system/consumer/white_label_spec.rb index a4b46b5428..cf2471f61f 100644 --- a/spec/system/consumer/white_label_spec.rb +++ b/spec/system/consumer/white_label_spec.rb @@ -183,7 +183,7 @@ describe 'White label setting' do it "shows the groups tab" do visit main_app.enterprise_shop_path(distributor) - expect(page).to have_selector "a[href='#groups']" + expect(page).to have_selector "a[href='#groups_panel']" end end end