fix(feed): unblock multiboard directories with public key fallback

This commit is contained in:
Tommaso Casaburi
2026-04-13 16:24:42 +07:00
parent 6c72c336fa
commit fea7b8ea10
3 changed files with 19 additions and 14 deletions
+12 -1
View File
@@ -53,6 +53,7 @@ let cacheCommunities: DirectoryCommunity[] | null = null;
let cacheMetadata: DirectoriesMetadata | null = null;
let inFlightGitHubFetch: Promise<DirectoriesData> | null = null;
const DIRECTORY_ALIAS_SUFFIXES = ['.bso', '.eth'] as const;
const MULTIBOARD_PUBLIC_KEY_FALLBACK_NAMES = new Set(['business-and-finance.bso', 'politically-incorrect.bso']);
// Exposed for deterministic unit tests around module-level cache state.
export const __resetDirectoriesModuleStateForTests = () => {
@@ -96,6 +97,14 @@ const getDirectoryIdentifiers = (community: DirectoryCommunity): string[] => [
...new Set([community.address, community.name, community.publicKey].filter((value): value is string => typeof value === 'string' && value.length > 0)),
];
export const getDirectoryFetchAddress = (community: DirectoryCommunity): string => {
if (community.name && MULTIBOARD_PUBLIC_KEY_FALLBACK_NAMES.has(community.name) && community.publicKey) {
return community.publicKey;
}
return community.address;
};
const toCanonicalCommunity = (value: {
address?: unknown;
communityAddress?: unknown;
@@ -464,7 +473,9 @@ export const useDirectoriesState = () => {
export const useDirectoryAddresses = () => {
const directories = useDirectories();
return useMemo(() => (Array.isArray(directories) ? directories.map((community) => community.address) : []), [directories]);
const directoryAddresses = useMemo(() => (Array.isArray(directories) ? directories.map((community) => getDirectoryFetchAddress(community)) : []), [directories]);
return directoryAddresses;
};
export const useDirectoryByAddress = (address: string | undefined) => {