Rename Movie to Group in UI (#4963)

* Replace movies with groups in the UI
* Massage menu items
* Change view names
* Rename Movie components to Group
* Refactor movie to group variable names
* Rename movie class names to group
This commit is contained in:
WithoutPants
2024-06-26 11:39:31 +10:00
committed by GitHub
parent d986a9eb4f
commit af6841be49
63 changed files with 643 additions and 612 deletions

View File

@@ -8,7 +8,7 @@ import {
} from "src/components/Shared/ScrapeDialog/scrapeResult";
import { TagSelect } from "src/components/Tags/TagSelect";
import { StudioSelect } from "src/components/Studios/StudioSelect";
import { MovieSelect } from "src/components/Movies/MovieSelect";
import { GroupSelect } from "src/components/Movies/MovieSelect";
interface IScrapedStudioRow {
title: string;
@@ -196,10 +196,10 @@ export const ScrapedPerformersRow: React.FC<
);
};
export const ScrapedMoviesRow: React.FC<
export const ScrapedGroupsRow: React.FC<
IScrapedObjectRowImpl<GQL.ScrapedMovie>
> = ({ title, result, onChange, newObjects, onCreateNew }) => {
const moviesCopy = useMemo(() => {
const groupsCopy = useMemo(() => {
return (
newObjects?.map((p) => {
const name: string = p.name ?? "";
@@ -208,7 +208,7 @@ export const ScrapedMoviesRow: React.FC<
);
}, [newObjects]);
function renderScrapedMovies(
function renderScrapedGroups(
scrapeResult: ScrapeResult<GQL.ScrapedMovie[]>,
isNew?: boolean,
onChangeFn?: (value: GQL.ScrapedMovie[]) => void
@@ -228,7 +228,7 @@ export const ScrapedMoviesRow: React.FC<
});
return (
<MovieSelect
<GroupSelect
isMulti
className="form-control react-select"
isDisabled={!isNew}
@@ -247,9 +247,9 @@ export const ScrapedMoviesRow: React.FC<
<ScrapedObjectsRow<GQL.ScrapedMovie>
title={title}
result={result}
renderObjects={renderScrapedMovies}
renderObjects={renderScrapedGroups}
onChange={onChange}
newObjects={moviesCopy}
newObjects={groupsCopy}
onCreateNew={onCreateNew}
getName={(value) => value.name ?? ""}
/>

View File

@@ -9,7 +9,7 @@ import {
import { ObjectScrapeResult, ScrapeResult } from "./scrapeResult";
import { useIntl } from "react-intl";
import { scrapedPerformerToCreateInput } from "src/core/performers";
import { scrapedMovieToCreateInput } from "src/core/movies";
import { scrapedGroupToCreateInput } from "src/core/movies";
function useCreateObject<T>(
entityTypeID: string,
@@ -123,16 +123,16 @@ export function useCreateScrapedPerformer(
return useCreateObject("performer", createNewPerformer);
}
export function useCreateScrapedMovie(
export function useCreateScrapedGroup(
props: IUseCreateNewObjectProps<GQL.ScrapedMovie>
) {
const { scrapeResult, setScrapeResult, newObjects, setNewObjects } = props;
const [createMovie] = useMovieCreate();
const [createGroup] = useMovieCreate();
async function createNewMovie(toCreate: GQL.ScrapedMovie) {
const input = scrapedMovieToCreateInput(toCreate);
async function createNewGroup(toCreate: GQL.ScrapedMovie) {
const input = scrapedGroupToCreateInput(toCreate);
const result = await createMovie({
const result = await createGroup({
variables: { input: input },
});
@@ -150,14 +150,14 @@ export function useCreateScrapedMovie(
// remove the object from the list
const newObjectsClone = newObjects.concat();
const pIndex = newObjectsClone.findIndex((p) => p.name === toCreate.name);
if (pIndex === -1) throw new Error("Could not find movie to remove");
if (pIndex === -1) throw new Error("Could not find group to remove");
newObjectsClone.splice(pIndex, 1);
setNewObjects(newObjectsClone);
}
return useCreateObject("movie", createNewMovie);
return useCreateObject("group", createNewGroup);
}
export function useCreateScrapedTag(