From a9d31889b4b9b0e330311decb951f76e9b915916 Mon Sep 17 00:00:00 2001 From: DingDongSoLong4 <99329275+DingDongSoLong4@users.noreply.github.com> Date: Tue, 8 Aug 2023 01:30:23 +0200 Subject: [PATCH] Fix creating from non-stashbox sources in Scene Tagger (#4001) * Use name instead of remote_site_id * Hide scraped studio image if missing * very minor cleanup --- ui/v2.5/src/components/Tagger/context.tsx | 6 +- .../components/Tagger/scenes/StudioModal.tsx | 99 ++++++++++--------- 2 files changed, 54 insertions(+), 51 deletions(-) diff --git a/ui/v2.5/src/components/Tagger/context.tsx b/ui/v2.5/src/components/Tagger/context.tsx index 22b3fc38d..3c7003228 100644 --- a/ui/v2.5/src/components/Tagger/context.tsx +++ b/ui/v2.5/src/components/Tagger/context.tsx @@ -563,7 +563,7 @@ export const TaggerContext: React.FC = ({ children }) => { return { ...r, performers: r.performers.map((p) => { - if (p.remote_site_id === performer.remote_site_id) { + if (p.name === performer.name) { return { ...p, stored_id: performerID, @@ -658,8 +658,6 @@ export const TaggerContext: React.FC = ({ children }) => { studio: GQL.ScrapedStudio, toCreate: GQL.StudioCreateInput ) { - if (!currentSource?.stashboxEndpoint) return; - try { const result = await createStudio({ variables: { @@ -678,7 +676,7 @@ export const TaggerContext: React.FC = ({ children }) => { return { ...r, studio: - r.studio.remote_site_id === studio.remote_site_id + r.studio.name === studio.name ? { ...r.studio, stored_id: studioID, diff --git a/ui/v2.5/src/components/Tagger/scenes/StudioModal.tsx b/ui/v2.5/src/components/Tagger/scenes/StudioModal.tsx index 027766f65..8af089360 100644 --- a/ui/v2.5/src/components/Tagger/scenes/StudioModal.tsx +++ b/ui/v2.5/src/components/Tagger/scenes/StudioModal.tsx @@ -31,13 +31,38 @@ const StudioDetails: React.FC = ({ toggleField, isNew = false, }) => { - const renderField = ( + function maybeRenderImage() { + if (!studio.image) return; + + return ( +
+
+
+ + +
+
+
+ ); + } + + function maybeRenderField( id: string, text: string | null | undefined, - isSelectable: boolean = true, - truncate: boolean = true - ) => - text && ( + isSelectable: boolean = true + ) { + if (!text) return; + + return (
{isSelectable && ( @@ -53,47 +78,33 @@ const StudioDetails: React.FC = ({ :
- {truncate ? ( - - ) : ( - {text} - )} +
); + } + + function maybeRenderLink() { + if (!link) return; + + return ( +
+ + + + +
+ ); + } return (
-
-
-
- - -
-
-
- + {maybeRenderImage()}
- {renderField("name", studio.name, !isNew)} - {renderField("url", studio.url)} - {renderField("parent_studio", studio.parent?.name, false)} - {link && ( -
- - - - -
- )} + {maybeRenderField("name", studio.name, !isNew)} + {maybeRenderField("url", studio.url)} + {maybeRenderField("parent_studio", studio.parent?.name, false)} + {maybeRenderLink()}
@@ -177,9 +188,7 @@ const StudioModal: React.FC = ({ throw new Error("studio name must set"); } - const studioData: GQL.StudioCreateInput & { - [index: string]: unknown; - } = { + const studioData: GQL.StudioCreateInput = { name: studio.name, url: studio.url, image: studio.image, @@ -200,11 +209,7 @@ const StudioModal: React.FC = ({ // handle exclusions excludeFields(studioData, excluded); - let parentData: - | (GQL.StudioCreateInput & { - [index: string]: unknown; - }) - | undefined = undefined; + let parentData: GQL.StudioCreateInput | undefined = undefined; if (createParentStudio && sendParentStudio) { if (!studio.parent?.name) {