diff --git a/src/components/boards-bar/__tests__/boards-bar.test.tsx b/src/components/boards-bar/__tests__/boards-bar.test.tsx index bab10336..4d26b78c 100644 --- a/src/components/boards-bar/__tests__/boards-bar.test.tsx +++ b/src/components/boards-bar/__tests__/boards-bar.test.tsx @@ -125,6 +125,10 @@ let container: HTMLDivElement; let root: Root; const findExactText = (text: string) => Array.from(container.querySelectorAll('*')).find((element) => element.textContent?.trim() === text); +const getLinkHref = (text: string) => + Array.from(container.querySelectorAll('a')) + .find((element) => element.textContent?.trim() === text) + ?.getAttribute('href'); const renderBoardsBar = async (initialEntry: string) => { await act(async () => { @@ -234,6 +238,16 @@ describe('BoardsBar', () => { expect(testState.navigateMock).toHaveBeenCalledWith('/new-board.eth'); }); + it('keeps catalog navigation on desktop multiboard and board links', async () => { + await renderBoardsBar('/mu/catalog'); + + expect(getLinkHref('all')).toBe('/all/catalog'); + expect(getLinkHref('subs')).toBe('/subs/catalog'); + expect(getLinkHref('mod')).toBe('/mod/catalog'); + expect(getLinkHref('mu')).toBe('/mu/catalog'); + expect(getLinkHref('custom.eth')).toBe('/custom.eth/catalog'); + }); + it('keeps catalog navigation on mobile board changes and hides the navbar on downward scroll', async () => { await renderBoardsBar('/mu/catalog'); diff --git a/src/components/boards-bar/boards-bar.tsx b/src/components/boards-bar/boards-bar.tsx index a0b9c11d..a6933362 100644 --- a/src/components/boards-bar/boards-bar.tsx +++ b/src/components/boards-bar/boards-bar.tsx @@ -92,6 +92,7 @@ const BoardsBarDesktop = () => { const location = useLocation(); const params = useParams(); const isInCatalogView = isCatalogView(location.pathname, params); + const catalogSuffix = isInCatalogView ? '/catalog' : ''; const [showSearchBar, setShowSearchBar] = useState(false); const [showAllTemporarily, setShowAllTemporarily] = useState(false); const { openCreateBoardModal } = useCreateBoardModalStore(); @@ -170,7 +171,7 @@ const BoardsBarDesktop = () => { {code} ) : ( - + {code} )} @@ -192,7 +193,7 @@ const BoardsBarDesktop = () => { return ( - {boardPath && boardPath.trim() ? {displayText} : {displayText}} + {boardPath && boardPath.trim() ? {displayText} : {displayText}} {index !== total - 1 && ' / '} ); @@ -201,11 +202,11 @@ const BoardsBarDesktop = () => { return (
- [all / subs + [all / subs {accountCommunityAddresses.length > 0 && ( <> {' '} - / mod + / mod )} ]{' '}