mirror of
https://github.com/stashapp/stash.git
synced 2026-05-09 05:05:29 +02:00
Fix performer preview TypeScript types for CI.
Use full findPerformer data for mismatch comparisons and selected hover content, and normalize scraped card mapping to satisfy PerformerDataFragment shape. Made-with: Cursor
This commit is contained in:
parent
8fcaf3a596
commit
9ba90cb715
2 changed files with 24 additions and 9 deletions
|
|
@ -46,7 +46,7 @@ const pushDeltaIfDifferent = (
|
|||
|
||||
const buildPerformerDeltaRows = (
|
||||
remote: GQL.ScrapedPerformer,
|
||||
local: Performer
|
||||
local: GQL.PerformerDataFragment
|
||||
): IPerformerDeltaRow[] => {
|
||||
const rows: IPerformerDeltaRow[] = [];
|
||||
|
||||
|
|
@ -157,6 +157,12 @@ const PerformerResult: React.FC<IPerformerResultProps> = ({
|
|||
stashID.stash_id === performer.remote_site_id
|
||||
);
|
||||
const [selectedPerformer, setSelectedPerformer] = useState<Performer>();
|
||||
const { data: selectedPerformerData, loading: selectedPerformerLoading } =
|
||||
GQL.useFindPerformerQuery({
|
||||
variables: { id: selectedID ?? "" },
|
||||
skip: !selectedID,
|
||||
});
|
||||
const selectedPerformerDetails = selectedPerformerData?.findPerformer;
|
||||
|
||||
const stashboxPerformerPrefix = endpoint
|
||||
? `${getStashboxBase(endpoint)}performers/`
|
||||
|
|
@ -189,7 +195,7 @@ const PerformerResult: React.FC<IPerformerResultProps> = ({
|
|||
selectPerformer(undefined);
|
||||
};
|
||||
|
||||
if (stashLoading) return <div>Loading performer</div>;
|
||||
if (stashLoading || selectedPerformerLoading) return <div>Loading performer</div>;
|
||||
|
||||
if (matchedPerformer && matchedStashID) {
|
||||
return (
|
||||
|
|
@ -232,15 +238,15 @@ const PerformerResult: React.FC<IPerformerResultProps> = ({
|
|||
|
||||
const selectedSource = !selectedID ? "skip" : "existing";
|
||||
const selectedPerformerConflictStashID =
|
||||
endpoint && performer.remote_site_id && selectedPerformer
|
||||
? selectedPerformer.stash_ids.find(
|
||||
endpoint && performer.remote_site_id && selectedPerformerDetails
|
||||
? selectedPerformerDetails.stash_ids.find(
|
||||
(stashID) =>
|
||||
stashID.endpoint === endpoint &&
|
||||
stashID.stash_id !== performer.remote_site_id
|
||||
)
|
||||
: undefined;
|
||||
const selectedPerformerDeltaRows = selectedPerformer
|
||||
? buildPerformerDeltaRows(performer, selectedPerformer)
|
||||
const selectedPerformerDeltaRows = selectedPerformerDetails
|
||||
? buildPerformerDeltaRows(performer, selectedPerformerDetails)
|
||||
: [];
|
||||
|
||||
const safeBuildPerformerScraperLink = (id: string | null | undefined) => {
|
||||
|
|
@ -274,7 +280,7 @@ const PerformerResult: React.FC<IPerformerResultProps> = ({
|
|||
</Button>
|
||||
<MatchedPerformerPreview
|
||||
performerID={selectedPerformer?.id}
|
||||
performer={selectedPerformer}
|
||||
performer={selectedPerformerDetails}
|
||||
warningStashID={selectedPerformerConflictStashID}
|
||||
deltaRows={selectedPerformerDeltaRows}
|
||||
>
|
||||
|
|
|
|||
|
|
@ -18,23 +18,32 @@ const toPerformerCardData = (performer: GQL.ScrapedPerformer) =>
|
|||
performer.remote_site_id ??
|
||||
`scraped-${performer.name?.replace(/\s+/g, "-").toLowerCase() ?? "performer"}`,
|
||||
name: performer.name ?? "Unknown performer",
|
||||
alias_list: performer.aliases
|
||||
? performer.aliases
|
||||
.split(",")
|
||||
.map((a) => a.trim())
|
||||
.filter(Boolean)
|
||||
: [],
|
||||
disambiguation: performer.disambiguation ?? null,
|
||||
gender: performer.gender ?? null,
|
||||
birthdate: performer.birthdate ?? null,
|
||||
death_date: performer.death_date ?? null,
|
||||
country: performer.country ?? null,
|
||||
image_path: performer.images?.[0] ?? performer.image_path ?? null,
|
||||
image_path: performer.images?.[0] ?? null,
|
||||
tags: [],
|
||||
custom_fields: [],
|
||||
stash_ids: [],
|
||||
favorite: false,
|
||||
ignore_auto_tag: false,
|
||||
scene_count: null,
|
||||
image_count: null,
|
||||
gallery_count: null,
|
||||
group_count: null,
|
||||
performer_count: null,
|
||||
o_counter: null,
|
||||
rating100: null,
|
||||
urls: performer.urls ?? [],
|
||||
}) as GQL.PerformerDataFragment;
|
||||
} as unknown as GQL.PerformerDataFragment);
|
||||
|
||||
const ScrapedPerformerCard = ({ performer }: { performer: GQL.ScrapedPerformer }) => {
|
||||
return (
|
||||
|
|
|
|||
Loading…
Reference in a new issue