From 22f0d4b932f35821b21c284ed917b4c028105644 Mon Sep 17 00:00:00 2001 From: Nicolas Olmos Date: Mon, 12 Jan 2026 09:51:54 -0300 Subject: [PATCH] feat: add url fragment linking to tabs on edit sponsor page --- src/pages/sponsors/edit-sponsor-page.js | 29 +++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/src/pages/sponsors/edit-sponsor-page.js b/src/pages/sponsors/edit-sponsor-page.js index 5f3b6e214..8e9b73080 100644 --- a/src/pages/sponsors/edit-sponsor-page.js +++ b/src/pages/sponsors/edit-sponsor-page.js @@ -43,6 +43,26 @@ import SponsorUsersListPerSponsorPage from "./sponsor-users-list-per-sponsor"; import SponsorFormsTab from "./sponsor-forms-tab"; import SponsorBadgeScans from "./sponsor-badge-scans"; +const tabsToFragmentMap = [ + "general", + "users", + "pages", + "media_uploads", + "forms", + "cart", + "purchases", + "badge_scans" +]; + +const getFragmentFromValue = (index) => tabsToFragmentMap[index]; + +const getTabFromUrlFragment = () => { + const result = tabsToFragmentMap.indexOf( + window.location.hash.replace("#", "") + ); + return result > -1 ? result : 0; +}; + const CustomTabPanel = (props) => { const { children, value, index, ...other } = props; @@ -91,10 +111,15 @@ const EditSponsorPage = (props) => { getExtraQuestionMeta } = props; - const [selectedTab, setSelectedTab] = useState(0); + const [selectedTab, setSelectedTab] = useState(getTabFromUrlFragment()); + + useEffect(() => { + setSelectedTab(getTabFromUrlFragment()); + }, [window.location.hash]); const handleTabChange = (event, newValue) => { setSelectedTab(newValue); + window.location.hash = getFragmentFromValue(newValue); }; useEffect(() => { @@ -127,7 +152,7 @@ const EditSponsorPage = (props) => { return ( - + {entity.company?.name}