diff --git a/ui/v2.5/src/components/Changelog/versions/v030.tsx b/ui/v2.5/src/components/Changelog/versions/v030.tsx index d6a34f92e..81327b9bf 100644 --- a/ui/v2.5/src/components/Changelog/versions/v030.tsx +++ b/ui/v2.5/src/components/Changelog/versions/v030.tsx @@ -13,6 +13,7 @@ const markup = ` * Add support for parent/child studios. ### 🎨 Improvements +* Allow adding performers and studios from selectors. * Add support for chrome dp in xpath scrapers. * Allow customisation of preview video generation. * Add support for live transcoding in Safari. diff --git a/ui/v2.5/src/components/Shared/Select.tsx b/ui/v2.5/src/components/Shared/Select.tsx index 9b75d2ea7..0c7e63c36 100644 --- a/ui/v2.5/src/components/Shared/Select.tsx +++ b/ui/v2.5/src/components/Shared/Select.tsx @@ -13,6 +13,8 @@ import { useScrapePerformerList, useValidGalleriesForScene, useTagCreate, + useStudioCreate, + usePerformerCreate, } from "src/core/StashService"; import { useToast } from "src/hooks"; @@ -59,6 +61,16 @@ interface ISelectProps { groupHeader?: string; closeMenuOnSelect?: boolean; } +interface IFilterItem { + id: string; + name?: string | null; +} +interface IFilterComponentProps extends IFilterProps { + items: Array; + onCreate?: (name: string) => Promise<{ item: IFilterItem; message: string }>; +} +interface IFilterSelectProps + extends Omit {} interface ISceneGallerySelect { initialId?: string; @@ -191,180 +203,151 @@ export const FilterSelect: React.FC = (props) => export const PerformerSelect: React.FC = (props) => { const { data, loading } = useAllPerformersForFilter(); + const [createPerformer] = usePerformerCreate(); - const normalizedData = data?.allPerformersSlim ?? []; - const items: Option[] = normalizedData.map((item) => ({ - value: item.id, - label: item.name ?? "", - })); - const placeholder = props.noSelectionString ?? "Select performer..."; - const selectedOptions: Option[] = props.ids - ? items.filter((item) => props.ids?.indexOf(item.value) !== -1) - : []; + const performers = data?.allPerformersSlim ?? []; - const onChange = (selectedItems: ValueType