mirror of
https://github.com/stashapp/stash.git
synced 2025-12-17 12:24:38 +03:00
Fix scene gallery selection (#990)
This commit is contained in:
@@ -598,7 +598,7 @@ export const SceneEditPanel: React.FC<IProps> = (props: IProps) => {
|
|||||||
<Col xs={9}>
|
<Col xs={9}>
|
||||||
<SceneGallerySelect
|
<SceneGallerySelect
|
||||||
sceneId={props.scene.id}
|
sceneId={props.scene.id}
|
||||||
initialId={galleryId}
|
gallery={props.scene.gallery ?? undefined}
|
||||||
onSelect={(item) => setGalleryId(item ? item.id : undefined)}
|
onSelect={(item) => setGalleryId(item ? item.id : undefined)}
|
||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ interface IFilterSelectProps
|
|||||||
extends Omit<ISelectProps, "onChange" | "items" | "onCreateOption"> {}
|
extends Omit<ISelectProps, "onChange" | "items" | "onCreateOption"> {}
|
||||||
|
|
||||||
interface ISceneGallerySelect {
|
interface ISceneGallerySelect {
|
||||||
initialId?: string;
|
gallery?: Pick<GQL.Gallery, "title" | "path" | "id">;
|
||||||
sceneId: string;
|
sceneId: string;
|
||||||
onSelect: (
|
onSelect: (
|
||||||
item:
|
item:
|
||||||
@@ -225,8 +225,9 @@ const FilterSelectComponent: React.FC<
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const SceneGallerySelect: React.FC<ISceneGallerySelect> = (props) => {
|
export const SceneGallerySelect: React.FC<ISceneGallerySelect> = (props) => {
|
||||||
const [query, setQuery] = React.useState<string>("");
|
const [query, setQuery] = useState<string>("");
|
||||||
const { data, loading } = useFindGalleries(getFilter());
|
const { data, loading } = useFindGalleries(getFilter());
|
||||||
|
const [selectedOption, setSelectedOption] = useState<Option>();
|
||||||
|
|
||||||
const galleries = data?.findGalleries.galleries ?? [];
|
const galleries = data?.findGalleries.galleries ?? [];
|
||||||
const items = galleries.map((g) => ({
|
const items = galleries.map((g) => ({
|
||||||
@@ -246,14 +247,22 @@ export const SceneGallerySelect: React.FC<ISceneGallerySelect> = (props) => {
|
|||||||
|
|
||||||
const onChange = (selectedItems: ValueType<Option>) => {
|
const onChange = (selectedItems: ValueType<Option>) => {
|
||||||
const selectedItem = getSelectedValues(selectedItems)[0];
|
const selectedItem = getSelectedValues(selectedItems)[0];
|
||||||
|
setSelectedOption(
|
||||||
|
Array.isArray(selectedItems) ? selectedItems[0] : selectedItems
|
||||||
|
);
|
||||||
props.onSelect(
|
props.onSelect(
|
||||||
selectedItem ? galleries.find((g) => g.id === selectedItem) : undefined
|
selectedItem ? galleries.find((g) => g.id === selectedItem) : undefined
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const selectedOptions: Option[] = props.initialId
|
const selectedOptions: Option[] = [];
|
||||||
? items.filter((item) => props.initialId?.indexOf(item.value) !== -1)
|
if (selectedOption !== undefined) selectedOptions.push(selectedOption);
|
||||||
: [];
|
else if (props.gallery) {
|
||||||
|
selectedOptions.push({
|
||||||
|
value: props.gallery.id,
|
||||||
|
label: props.gallery.title ?? props.gallery.path ?? "Unknown",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<SelectComponent
|
<SelectComponent
|
||||||
@@ -274,7 +283,7 @@ interface IScrapePerformerSuggestProps {
|
|||||||
export const ScrapePerformerSuggest: React.FC<IScrapePerformerSuggestProps> = (
|
export const ScrapePerformerSuggest: React.FC<IScrapePerformerSuggestProps> = (
|
||||||
props
|
props
|
||||||
) => {
|
) => {
|
||||||
const [query, setQuery] = React.useState<string>("");
|
const [query, setQuery] = useState<string>("");
|
||||||
const { data, loading } = useScrapePerformerList(props.scraperId, query);
|
const { data, loading } = useScrapePerformerList(props.scraperId, query);
|
||||||
|
|
||||||
const performers = data?.scrapePerformerList ?? [];
|
const performers = data?.scrapePerformerList ?? [];
|
||||||
|
|||||||
Reference in New Issue
Block a user