Use stable array/object constants II

This commit is contained in:
schroda
2026-03-20 03:29:45 +01:00
parent 5a2e5f83bc
commit 519ff43b67
17 changed files with 38 additions and 24 deletions

View File

@@ -41,6 +41,7 @@ import { ExtensionAction, ExtensionGroupState, ExtensionState } from '@/features
import { EXTENSION_ACTION_TO_FAILURE_TRANSLATION_MAP } from '@/features/extension/Extensions.constants.ts';
import { AppRoutes } from '@/base/AppRoute.constants.ts';
import { getErrorMessage } from '@/lib/HelperFunctions.ts';
import { STABLE_EMPTY_ARRAY } from '@/base/Base.constants.ts';
import {
createUpdateMetadataServerSettings,
useMetadataServerSettings,
@@ -142,11 +143,11 @@ export function Extensions({ tabsMenuHeight }: { tabsMenuHeight: number }) {
const areReposDefined = !!serverSettingsData?.settings.extensionRepos.length;
const areMultipleReposInUse = (serverSettingsData?.settings.extensionRepos.length ?? 0) > 1;
const allExtensions = data?.fetchExtensions?.extensions;
const allLangs = useMemo(() => getLanguagesFromExtensions(allExtensions ?? []), [allExtensions]);
const allExtensions = data?.fetchExtensions?.extensions ?? STABLE_EMPTY_ARRAY;
const allLangs = useMemo(() => getLanguagesFromExtensions(allExtensions), [allExtensions]);
const filteredExtensions = useMemo(
() => filterExtensions(allExtensions ?? [], { selectedLanguages: shownLangs, showNsfw, query }),
() => filterExtensions(allExtensions, { selectedLanguages: shownLangs, showNsfw, query }),
[allExtensions, shownLangs, showNsfw, query],
);
const groupedExtensions = useMemo(() => groupExtensionsByLanguage(filteredExtensions), [filteredExtensions]);

View File

@@ -30,6 +30,7 @@ import { VirtuosoUtil } from '@/lib/virtuoso/Virtuoso.util.tsx';
import { StyledGroupHeader } from '@/base/components/virtuoso/StyledGroupHeader.tsx';
import { StyledGroupItemWrapper } from '@/base/components/virtuoso/StyledGroupItemWrapper.tsx';
import { SourceLanguageSelect } from '@/features/source/components/SourceLanguageSelect.tsx';
import { STABLE_EMPTY_ARRAY } from '@/base/Base.constants.ts';
export function Sources({ tabsMenuHeight }: { tabsMenuHeight: number }) {
const { t } = useLingui();
@@ -45,10 +46,10 @@ export function Sources({ tabsMenuHeight }: { tabsMenuHeight: number }) {
error,
refetch,
} = requestManager.useGetSourceList({ notifyOnNetworkStatusChange: true });
const sources = data?.sources.nodes;
const sources = data?.sources.nodes ?? STABLE_EMPTY_ARRAY;
const filteredSources = useMemo(
() =>
SourceService.filter(sources ?? [], {
SourceService.filter(sources, {
isNsfw: showNsfw ? undefined : true,
languages: shownLangs,
keepLocalSource: true,
@@ -58,7 +59,7 @@ export function Sources({ tabsMenuHeight }: { tabsMenuHeight: number }) {
);
const sourcesForLanguageFilter = useMemo(
() =>
SourceService.filter(sources ?? [], {
SourceService.filter(sources, {
isNsfw: showNsfw ? undefined : true,
removeLocalSource: true,
}),