Movie select overhaul (#4563)

* Add ids to findMovies input
* Use ids for other find interfaces
* Update client side
* Fix gallery select function
* Replace movie select
* Re-add creatable
* Overhaul movie table
* Remove and deprecated unused code
This commit is contained in:
WithoutPants
2024-02-19 10:25:08 +11:00
committed by GitHub
parent e7f610ce18
commit e231812203
27 changed files with 696 additions and 437 deletions

View File

@@ -93,6 +93,13 @@ const SceneMergeDetails: React.FC<ISceneMergeDetailsProps> = ({
};
}
function movieToStoredID(o: { movie: { id: string; name: string } }) {
return {
stored_id: o.movie.id,
name: o.movie.name,
};
}
const [studio, setStudio] = useState<ScrapeResult<GQL.ScrapedStudio>>(
new ScrapeResult<GQL.ScrapedStudio>(
dest.studio ? idToStoredID(dest.studio) : undefined
@@ -127,8 +134,12 @@ const SceneMergeDetails: React.FC<ISceneMergeDetailsProps> = ({
)
);
const [movies, setMovies] = useState<ScrapeResult<string[]>>(
new ScrapeResult<string[]>(sortIdList(dest.movies.map((p) => p.movie.id)))
const [movies, setMovies] = useState<
ObjectListScrapeResult<GQL.ScrapedMovie>
>(
new ObjectListScrapeResult<GQL.ScrapedMovie>(
sortStoredIdObjects(dest.movies.map(movieToStoredID))
)
);
const [tags, setTags] = useState<ObjectListScrapeResult<GQL.ScrapedTag>>(
@@ -235,9 +246,9 @@ const SceneMergeDetails: React.FC<ISceneMergeDetailsProps> = ({
);
setMovies(
new ScrapeResult(
dest.movies.map((m) => m.movie.id),
uniq(all.map((s) => s.movies.map((m) => m.movie.id)).flat())
new ObjectListScrapeResult<GQL.ScrapedMovie>(
sortStoredIdObjects(dest.movies.map(movieToStoredID)),
uniqIDStoredIDs(all.map((s) => s.movies.map(movieToStoredID)).flat())
)
);
@@ -571,9 +582,9 @@ const SceneMergeDetails: React.FC<ISceneMergeDetailsProps> = ({
const found = all
.map((s) => s.movies)
.flat()
.find((mm) => mm.movie.id === m);
.find((mm) => mm.movie.id === m.stored_id);
return {
movie_id: m,
movie_id: m.stored_id!,
scene_index: found!.scene_index,
};
}),