From e9c7b0aed34fdb2183cfde62dbe075a30cf71cc7 Mon Sep 17 00:00:00 2001 From: WithoutPants <53250216+WithoutPants@users.noreply.github.com> Date: Wed, 27 Oct 2021 09:33:08 +1100 Subject: [PATCH] Fix new values not removed correctly when added (#1890) * Fix new values not removed correctly when added --- .../src/components/Changelog/versions/v0110.md | 1 + .../GalleryDetails/GalleryScrapeDialog.tsx | 12 +++++++++--- .../Movies/MovieDetails/MovieScrapeDialog.tsx | 6 +++++- .../PerformerDetails/PerformerScrapeDialog.tsx | 4 +++- .../Scenes/SceneDetails/SceneScrapeDialog.tsx | 16 ++++++++++++---- ui/v2.5/src/components/Shared/ScrapeDialog.tsx | 8 ++++---- 6 files changed, 34 insertions(+), 13 deletions(-) diff --git a/ui/v2.5/src/components/Changelog/versions/v0110.md b/ui/v2.5/src/components/Changelog/versions/v0110.md index 14998a469..80a3ea4c5 100644 --- a/ui/v2.5/src/components/Changelog/versions/v0110.md +++ b/ui/v2.5/src/components/Changelog/versions/v0110.md @@ -15,6 +15,7 @@ * Optimised scanning process. ([#1816](https://github.com/stashapp/stash/pull/1816)) ### 🐛 Bug fixes +* Fix creating missing entities removing the incorrect entry from the missing list in the scrape dialog. ([#1890](https://github.com/stashapp/stash/pull/1890)) * Allow creating missing Studio during movie scrape. ([#1899](https://github.com/stashapp/stash/pull/1899)) * Fix image files in folder galleries not being deleting when delete file option is checked. ([#1872](https://github.com/stashapp/stash/pull/1872)) * Fix marker generation task reading video files unnecessarily. ([#1871](https://github.com/stashapp/stash/pull/1871)) diff --git a/ui/v2.5/src/components/Galleries/GalleryDetails/GalleryScrapeDialog.tsx b/ui/v2.5/src/components/Galleries/GalleryDetails/GalleryScrapeDialog.tsx index 2e34fc7af..a0b82a67d 100644 --- a/ui/v2.5/src/components/Galleries/GalleryDetails/GalleryScrapeDialog.tsx +++ b/ui/v2.5/src/components/Galleries/GalleryDetails/GalleryScrapeDialog.tsx @@ -60,7 +60,9 @@ function renderScrapedStudioRow( } onChange={onChange} newValues={newStudio ? [newStudio] : undefined} - onCreateNew={onCreateNew} + onCreateNew={() => { + if (onCreateNew && newStudio) onCreateNew(newStudio); + }} /> ); } @@ -112,7 +114,9 @@ function renderScrapedPerformersRow( } onChange={onChange} newValues={performersCopy} - onCreateNew={onCreateNew} + onCreateNew={(i) => { + if (onCreateNew) onCreateNew(newPerformers[i]); + }} /> ); } @@ -159,7 +163,9 @@ function renderScrapedTagsRow( } newValues={newTags} onChange={onChange} - onCreateNew={onCreateNew} + onCreateNew={(i) => { + if (onCreateNew) onCreateNew(newTags[i]); + }} /> ); } diff --git a/ui/v2.5/src/components/Movies/MovieDetails/MovieScrapeDialog.tsx b/ui/v2.5/src/components/Movies/MovieDetails/MovieScrapeDialog.tsx index a34c90d68..bf6ded203 100644 --- a/ui/v2.5/src/components/Movies/MovieDetails/MovieScrapeDialog.tsx +++ b/ui/v2.5/src/components/Movies/MovieDetails/MovieScrapeDialog.tsx @@ -54,7 +54,11 @@ function renderScrapedStudioRow( } onChange={onChange} newValues={newStudio ? [newStudio] : undefined} - onCreateNew={onCreateNew} + onCreateNew={() => { + if (onCreateNew && newStudio) { + onCreateNew(newStudio); + } + }} /> ); } diff --git a/ui/v2.5/src/components/Performers/PerformerDetails/PerformerScrapeDialog.tsx b/ui/v2.5/src/components/Performers/PerformerDetails/PerformerScrapeDialog.tsx index d337fc5c7..9225cb976 100644 --- a/ui/v2.5/src/components/Performers/PerformerDetails/PerformerScrapeDialog.tsx +++ b/ui/v2.5/src/components/Performers/PerformerDetails/PerformerScrapeDialog.tsx @@ -112,7 +112,9 @@ function renderScrapedTagsRow( } newValues={newTags} onChange={onChange} - onCreateNew={onCreateNew} + onCreateNew={(i) => { + if (onCreateNew) onCreateNew(newTags[i]); + }} /> ); } diff --git a/ui/v2.5/src/components/Scenes/SceneDetails/SceneScrapeDialog.tsx b/ui/v2.5/src/components/Scenes/SceneDetails/SceneScrapeDialog.tsx index 430758f71..3248beccc 100644 --- a/ui/v2.5/src/components/Scenes/SceneDetails/SceneScrapeDialog.tsx +++ b/ui/v2.5/src/components/Scenes/SceneDetails/SceneScrapeDialog.tsx @@ -63,7 +63,9 @@ function renderScrapedStudioRow( } onChange={onChange} newValues={newStudio ? [newStudio] : undefined} - onCreateNew={onCreateNew} + onCreateNew={() => { + if (onCreateNew && newStudio) onCreateNew(newStudio); + }} /> ); } @@ -115,7 +117,9 @@ function renderScrapedPerformersRow( } onChange={onChange} newValues={performersCopy} - onCreateNew={onCreateNew} + onCreateNew={(i) => { + if (onCreateNew) onCreateNew(newPerformers[i]); + }} /> ); } @@ -167,7 +171,9 @@ function renderScrapedMoviesRow( } onChange={onChange} newValues={moviesCopy} - onCreateNew={onCreateNew} + onCreateNew={(i) => { + if (onCreateNew) onCreateNew(newMovies[i]); + }} /> ); } @@ -214,7 +220,9 @@ function renderScrapedTagsRow( } newValues={newTags} onChange={onChange} - onCreateNew={onCreateNew} + onCreateNew={(i) => { + if (onCreateNew) onCreateNew(newTags[i]); + }} /> ); } diff --git a/ui/v2.5/src/components/Shared/ScrapeDialog.tsx b/ui/v2.5/src/components/Shared/ScrapeDialog.tsx index 44d3ca65a..ecaa3bf00 100644 --- a/ui/v2.5/src/components/Shared/ScrapeDialog.tsx +++ b/ui/v2.5/src/components/Shared/ScrapeDialog.tsx @@ -50,7 +50,7 @@ export class ScrapeResult { } interface IHasName { - name: string; + name: string | undefined; } interface IScrapedFieldProps { @@ -64,7 +64,7 @@ interface IScrapedRowProps renderNewField: (result: ScrapeResult) => JSX.Element | undefined; onChange: (value: ScrapeResult) => void; newValues?: V[]; - onCreateNew?: (newValue: V) => void; + onCreateNew?: (index: number) => void; } function renderButtonIcon(selected: boolean) { @@ -102,12 +102,12 @@ export const ScrapeDialogRow = ( const ret = ( <> - {props.newValues!.map((t) => ( + {props.newValues!.map((t, i) => ( props.onCreateNew!(t)} + onClick={() => props.onCreateNew!(i)} > {t.name}