Show source "language subtitle" only for "last used" and "pinned" sources

The others are already grouped by language, which makes this information redundant
This commit is contained in:
schroda
2025-06-23 00:41:47 +02:00
parent eb625c9d96
commit ecfde354b8
3 changed files with 19 additions and 13 deletions

View File

@@ -53,15 +53,15 @@ export const isExtensionState = (value: string): boolean =>
value as ExtensionGroupState,
);
export const isPinnedOrLastUsedSource = (languageCode: string): boolean =>
[DefaultLanguage.PINNED, DefaultLanguage.LAST_USED_SOURCE].includes(languageCode as DefaultLanguage);
export const isExtensionStateOrLanguage = (languageCode: string): boolean =>
isExtensionState(languageCode) ||
[
DefaultLanguage.ALL,
DefaultLanguage.OTHER,
DefaultLanguage.LOCAL_SOURCE,
DefaultLanguage.PINNED,
DefaultLanguage.LAST_USED_SOURCE,
].includes(languageCode as DefaultLanguage);
isPinnedOrLastUsedSource(languageCode) ||
[DefaultLanguage.ALL, DefaultLanguage.OTHER, DefaultLanguage.LOCAL_SOURCE].includes(
languageCode as DefaultLanguage,
);
export const translateExtensionLanguage = (languageCode: string): string =>
isExtensionStateOrLanguage(languageCode)

View File

@@ -20,7 +20,6 @@ import IconButton from '@mui/material/IconButton';
import { requestManager } from '@/lib/requests/RequestManager.ts';
import { SourceContentType } from '@/modules/source/screens/SourceMangas.tsx';
import { GetSourcesListQuery } from '@/lib/graphql/generated/graphql.ts';
import { translateExtensionLanguage } from '@/modules/extension/Extensions.utils.ts';
import { AppRoutes } from '@/modules/core/AppRoute.constants.ts';
import { MUIUtil } from '@/lib/mui/MUI.util.ts';
import { Sources } from '@/modules/source/services/Sources.ts';
@@ -30,16 +29,18 @@ import { CustomTooltip } from '@/modules/core/components/CustomTooltip.tsx';
import { createUpdateSourceMetadata, useGetSourceMetadata } from '@/modules/source/services/SourceMetadata.ts';
import { makeToast } from '@/modules/core/utils/Toast.ts';
import { getErrorMessage } from '@/lib/HelperFunctions.ts';
import { languageCodeToName } from '@/modules/core/utils/Languages.ts';
interface IProps {
source: GetSourcesListQuery['sources']['nodes'][number];
showSourceRepo: boolean;
showLanguage: boolean;
}
export const SourceCard: React.FC<IProps> = (props: IProps) => {
const { t } = useTranslation();
const { source, showSourceRepo } = props;
const { source, showSourceRepo, showLanguage } = props;
const {
id,
name,
@@ -79,7 +80,7 @@ export const SourceCard: React.FC<IProps> = (props: IProps) => {
{sourceName}
</Typography>
<Typography variant="caption">
{translateExtensionLanguage(lang)}
{showLanguage && languageCodeToName(lang)}
{isNsfw && (
<Typography variant="caption" color="error">
{' 18+'}

View File

@@ -21,7 +21,7 @@ import { SourceCard } from '@/modules/source/components/SourceCard.tsx';
import { LanguageSelect } from '@/modules/core/components/inputs/LanguageSelect.tsx';
import { EmptyViewAbsoluteCentered } from '@/modules/core/components/feedback/EmptyViewAbsoluteCentered.tsx';
import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts';
import { translateExtensionLanguage } from '@/modules/extension/Extensions.utils.ts';
import { isPinnedOrLastUsedSource, translateExtensionLanguage } from '@/modules/extension/Extensions.utils.ts';
import { AppRoutes } from '@/modules/core/AppRoute.constants.ts';
import { getErrorMessage } from '@/lib/HelperFunctions.ts';
import { Sources as SourceService } from '@/modules/source/services/Sources.ts';
@@ -140,12 +140,17 @@ export function Sources({ tabsMenuHeight }: { tabsMenuHeight: number }) {
</StyledGroupHeader>
);
}}
itemContent={(index) => {
itemContent={(index, groupIndex) => {
const language = sourcesByLanguage[groupIndex][0];
const source = visibleSources[index];
return (
<StyledGroupItemWrapper>
<SourceCard source={source} showSourceRepo={areSourcesFromDifferentRepos} />
<SourceCard
source={source}
showSourceRepo={areSourcesFromDifferentRepos}
showLanguage={isPinnedOrLastUsedSource(language)}
/>
</StyledGroupItemWrapper>
);
}}