fix(board-buttons): hide catalog controls on flash upload boards

Flash boards do not use catalog view, so hide catalog links and OP search
without leaving empty bracket placeholders in desktop board controls.
This commit is contained in:
Tommaso Casaburi
2026-06-01 12:42:21 +07:00
parent d3b5c40321
commit b686def1a1
12 changed files with 181 additions and 35 deletions
@@ -13,6 +13,7 @@ import {
isDirectoryListRoute,
isDirectoryRoute,
isFeedRoute,
isFlashBoardRoute,
isLegacyBoardModQueueRoute,
isModQueueRoute,
isPendingPostRoute,
@@ -33,6 +34,7 @@ const communities = [
title: '/mu/ - Music',
},
{ address: 'random.eth', directoryCode: 'b', title: 'Random' },
{ address: 'flash-posting.bso', directoryCode: 'f', title: '/f/ - Flash' },
];
beforeEach(() => {
@@ -66,6 +68,11 @@ describe('directory mapping helpers', () => {
expect(isDirectoryRoute('business.eth', communities)).toBe(false);
expect(isDirectoryBoard('biz', communities)).toBe(true);
expect(isDirectoryBoard('business.eth', communities)).toBe(false);
expect(isFlashBoardRoute('f', communities)).toBe(true);
expect(isFlashBoardRoute('flash-posting.bso', communities)).toBe(true);
expect(isFlashBoardRoute('mu', communities)).toBe(false);
expect(isFlashBoardRoute('music-posting.bso', communities)).toBe(false);
});
});
+12
View File
@@ -1,4 +1,5 @@
import { DirectoryCommunity, findDirectoryByAddress, normalizeBoardAddress } from '../../hooks/use-directories';
import { isFlashDirectory, isFlashDirectoryCode } from '../flash-tags';
import { getEffectiveTimeFilterName, getSearchWithTimeFilter } from './time-filter-utils';
/**
@@ -122,6 +123,17 @@ export const isDirectoryRoute = (boardIdentifier: string, communities: Directory
return directoryToAddress.has(boardIdentifier);
};
/** True when the board route segment refers to a flash (/f/) upload directory board. */
export const isFlashBoardRoute = (boardIdentifier: string | undefined, communities: DirectoryCommunity[]): boolean => {
if (isFlashDirectoryCode(boardIdentifier)) {
return true;
}
if (!boardIdentifier) {
return false;
}
return isFlashDirectory(findDirectoryByAddress(communities, boardIdentifier));
};
/** @deprecated Use {@link isDirectoryRoute} */
export const isDirectoryBoard = isDirectoryRoute;