Skip to content

Commit

Permalink
Feature/show extension repo only in case more than one repo is set (#543
Browse files Browse the repository at this point in the history
)

* Rename "isSingleRepoSet" prop to "showSourceRepo"

* Show repo of source in case sources of different repos are installed

* Center the source icon
  • Loading branch information
schroda authored Jan 9, 2024
1 parent 684ae69 commit fd1fa63
Show file tree
Hide file tree
Showing 8 changed files with 203 additions and 34 deletions.
8 changes: 4 additions & 4 deletions src/components/ExtensionCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import { makeToast } from '@/components/util/Toast.tsx';
interface IProps {
extension: PartialExtension;
handleUpdate: () => void;
usesCustomRepos: boolean;
showSourceRepo: boolean;
}

enum ExtensionAction {
Expand Down Expand Up @@ -94,7 +94,7 @@ export function ExtensionCard(props: IProps) {
const {
extension: { name, lang, versionName, isInstalled, hasUpdate, isObsolete, pkgName, iconUrl, isNsfw, repo },
handleUpdate,
usesCustomRepos,
showSourceRepo,
} = props;
const [installedState, setInstalledState] = useState<InstalledStates>(
getInstalledState(isInstalled, isObsolete, hasUpdate),
Expand Down Expand Up @@ -162,7 +162,7 @@ export function ExtensionCard(props: IProps) {
},
}}
>
<Box sx={{ display: 'flex' }}>
<Box sx={{ display: 'flex', alignItems: 'center' }}>
<Avatar
variant="rounded"
sx={{
Expand All @@ -186,7 +186,7 @@ export function ExtensionCard(props: IProps) {
</Typography>
)}
</Typography>
{usesCustomRepos && (
{showSourceRepo && (
<Typography variant="caption" display="block">
{repo}
</Typography>
Expand Down
23 changes: 19 additions & 4 deletions src/components/SourceCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import Typography from '@mui/material/Typography';
import React from 'react';
import { useTranslation } from 'react-i18next';
import { Link } from 'react-router-dom';
import { ISource } from '@/typings';
import { TPartialSource } from '@/typings';
import { requestManager } from '@/lib/requests/RequestManager.ts';
import { translateExtensionLanguage } from '@/screens/util/Extensions';
import { SourceContentType } from '@/screens/SourceMangas';
Expand All @@ -39,14 +39,24 @@ const WiderWidthButtons = styled('div')(({ theme }) => ({
}));

interface IProps {
source: ISource;
source: TPartialSource;
showSourceRepo: boolean;
}

export const SourceCard: React.FC<IProps> = (props: IProps) => {
const { t } = useTranslation();

const {
source: { id, name, lang, iconUrl, supportsLatest, isNsfw },
source: {
id,
name,
lang,
iconUrl,
supportsLatest,
isNsfw,
extension: { repo },
},
showSourceRepo,
} = props;

return (
Expand All @@ -69,7 +79,7 @@ export const SourceCard: React.FC<IProps> = (props: IProps) => {
padding: 2,
}}
>
<Box sx={{ display: 'flex' }}>
<Box sx={{ display: 'flex', alignItems: 'center' }}>
<Avatar
variant="rounded"
alt={name}
Expand Down Expand Up @@ -99,6 +109,11 @@ export const SourceCard: React.FC<IProps> = (props: IProps) => {
{' 18+'}
</Typography>
)}
{showSourceRepo && (
<Typography variant="caption" display="block">
{repo}
</Typography>
)}
</Typography>
)}
</Box>
Expand Down
4 changes: 4 additions & 0 deletions src/lib/graphql/Fragments.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,10 @@ export const PARTIAL_SOURCE_FIELDS = gql`
lang
name
supportsLatest
extension {
pkgName
repo
}
}
`;

Expand Down
76 changes: 76 additions & 0 deletions src/lib/graphql/generated/apollo-helpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -730,6 +730,58 @@ export type TextFilterFieldPolicy = {
default?: FieldPolicy<any> | FieldReadFunction<any>,
name?: FieldPolicy<any> | FieldReadFunction<any>
};
export type TrackRecordEdgeKeySpecifier = ('cursor' | 'node' | TrackRecordEdgeKeySpecifier)[];
export type TrackRecordEdgeFieldPolicy = {
cursor?: FieldPolicy<any> | FieldReadFunction<any>,
node?: FieldPolicy<any> | FieldReadFunction<any>
};
export type TrackRecordNodeListKeySpecifier = ('edges' | 'nodes' | 'pageInfo' | 'totalCount' | TrackRecordNodeListKeySpecifier)[];
export type TrackRecordNodeListFieldPolicy = {
edges?: FieldPolicy<any> | FieldReadFunction<any>,
nodes?: FieldPolicy<any> | FieldReadFunction<any>,
pageInfo?: FieldPolicy<any> | FieldReadFunction<any>,
totalCount?: FieldPolicy<any> | FieldReadFunction<any>
};
export type TrackRecordTypeKeySpecifier = ('displayScore' | 'finishDate' | 'id' | 'lastChapterRead' | 'libraryId' | 'manga' | 'mangaId' | 'remoteId' | 'remoteUrl' | 'score' | 'startDate' | 'status' | 'syncId' | 'title' | 'totalChapters' | 'tracker' | TrackRecordTypeKeySpecifier)[];
export type TrackRecordTypeFieldPolicy = {
displayScore?: FieldPolicy<any> | FieldReadFunction<any>,
finishDate?: FieldPolicy<any> | FieldReadFunction<any>,
id?: FieldPolicy<any> | FieldReadFunction<any>,
lastChapterRead?: FieldPolicy<any> | FieldReadFunction<any>,
libraryId?: FieldPolicy<any> | FieldReadFunction<any>,
manga?: FieldPolicy<any> | FieldReadFunction<any>,
mangaId?: FieldPolicy<any> | FieldReadFunction<any>,
remoteId?: FieldPolicy<any> | FieldReadFunction<any>,
remoteUrl?: FieldPolicy<any> | FieldReadFunction<any>,
score?: FieldPolicy<any> | FieldReadFunction<any>,
startDate?: FieldPolicy<any> | FieldReadFunction<any>,
status?: FieldPolicy<any> | FieldReadFunction<any>,
syncId?: FieldPolicy<any> | FieldReadFunction<any>,
title?: FieldPolicy<any> | FieldReadFunction<any>,
totalChapters?: FieldPolicy<any> | FieldReadFunction<any>,
tracker?: FieldPolicy<any> | FieldReadFunction<any>
};
export type TrackerEdgeKeySpecifier = ('cursor' | 'node' | TrackerEdgeKeySpecifier)[];
export type TrackerEdgeFieldPolicy = {
cursor?: FieldPolicy<any> | FieldReadFunction<any>,
node?: FieldPolicy<any> | FieldReadFunction<any>
};
export type TrackerNodeListKeySpecifier = ('edges' | 'nodes' | 'pageInfo' | 'totalCount' | TrackerNodeListKeySpecifier)[];
export type TrackerNodeListFieldPolicy = {
edges?: FieldPolicy<any> | FieldReadFunction<any>,
nodes?: FieldPolicy<any> | FieldReadFunction<any>,
pageInfo?: FieldPolicy<any> | FieldReadFunction<any>,
totalCount?: FieldPolicy<any> | FieldReadFunction<any>
};
export type TrackerTypeKeySpecifier = ('authUrl' | 'icon' | 'id' | 'isLoggedIn' | 'name' | 'trackRecords' | TrackerTypeKeySpecifier)[];
export type TrackerTypeFieldPolicy = {
authUrl?: FieldPolicy<any> | FieldReadFunction<any>,
icon?: FieldPolicy<any> | FieldReadFunction<any>,
id?: FieldPolicy<any> | FieldReadFunction<any>,
isLoggedIn?: FieldPolicy<any> | FieldReadFunction<any>,
name?: FieldPolicy<any> | FieldReadFunction<any>,
trackRecords?: FieldPolicy<any> | FieldReadFunction<any>
};
export type TriStateFilterKeySpecifier = ('default' | 'name' | TriStateFilterKeySpecifier)[];
export type TriStateFilterFieldPolicy = {
default?: FieldPolicy<any> | FieldReadFunction<any>,
Expand Down Expand Up @@ -1201,6 +1253,30 @@ export type StrictTypedTypePolicies = {
keyFields?: false | TextFilterKeySpecifier | (() => undefined | TextFilterKeySpecifier),
fields?: TextFilterFieldPolicy,
},
TrackRecordEdge?: Omit<TypePolicy, "fields" | "keyFields"> & {
keyFields?: false | TrackRecordEdgeKeySpecifier | (() => undefined | TrackRecordEdgeKeySpecifier),
fields?: TrackRecordEdgeFieldPolicy,
},
TrackRecordNodeList?: Omit<TypePolicy, "fields" | "keyFields"> & {
keyFields?: false | TrackRecordNodeListKeySpecifier | (() => undefined | TrackRecordNodeListKeySpecifier),
fields?: TrackRecordNodeListFieldPolicy,
},
TrackRecordType?: Omit<TypePolicy, "fields" | "keyFields"> & {
keyFields?: false | TrackRecordTypeKeySpecifier | (() => undefined | TrackRecordTypeKeySpecifier),
fields?: TrackRecordTypeFieldPolicy,
},
TrackerEdge?: Omit<TypePolicy, "fields" | "keyFields"> & {
keyFields?: false | TrackerEdgeKeySpecifier | (() => undefined | TrackerEdgeKeySpecifier),
fields?: TrackerEdgeFieldPolicy,
},
TrackerNodeList?: Omit<TypePolicy, "fields" | "keyFields"> & {
keyFields?: false | TrackerNodeListKeySpecifier | (() => undefined | TrackerNodeListKeySpecifier),
fields?: TrackerNodeListFieldPolicy,
},
TrackerType?: Omit<TypePolicy, "fields" | "keyFields"> & {
keyFields?: false | TrackerTypeKeySpecifier | (() => undefined | TrackerTypeKeySpecifier),
fields?: TrackerTypeFieldPolicy,
},
TriStateFilter?: Omit<TypePolicy, "fields" | "keyFields"> & {
keyFields?: false | TriStateFilterKeySpecifier | (() => undefined | TriStateFilterKeySpecifier),
fields?: TriStateFilterFieldPolicy,
Expand Down
Loading

0 comments on commit fd1fa63

Please sign in to comment.