mirror of
https://github.com/stashapp/stash.git
synced 2025-12-17 04:14:39 +03:00
Add portals for selects in dialogs (#5253)
This commit is contained in:
@@ -63,6 +63,7 @@ export const OptionsEditor: React.FC<IOptionsEditor> = ({
|
|||||||
options.skipMultipleMatchTag ? [options.skipMultipleMatchTag] : []
|
options.skipMultipleMatchTag ? [options.skipMultipleMatchTag] : []
|
||||||
}
|
}
|
||||||
noSelectionString="Select/create tag..."
|
noSelectionString="Select/create tag..."
|
||||||
|
menuPortalTarget={document.body}
|
||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
</Form.Group>
|
</Form.Group>
|
||||||
@@ -98,6 +99,7 @@ export const OptionsEditor: React.FC<IOptionsEditor> = ({
|
|||||||
: []
|
: []
|
||||||
}
|
}
|
||||||
noSelectionString="Select/create tag..."
|
noSelectionString="Select/create tag..."
|
||||||
|
menuPortalTarget={document.body}
|
||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
</Form.Group>
|
</Form.Group>
|
||||||
|
|||||||
@@ -211,6 +211,7 @@ export const EditGalleriesDialog: React.FC<IListOperationProps> = (
|
|||||||
existingIds={existingIds ?? []}
|
existingIds={existingIds ?? []}
|
||||||
ids={ids ?? []}
|
ids={ids ?? []}
|
||||||
mode={mode}
|
mode={mode}
|
||||||
|
menuPortalTarget={document.body}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -273,6 +274,7 @@ export const EditGalleriesDialog: React.FC<IListOperationProps> = (
|
|||||||
}
|
}
|
||||||
ids={studioId ? [studioId] : []}
|
ids={studioId ? [studioId] : []}
|
||||||
isDisabled={isUpdating}
|
isDisabled={isUpdating}
|
||||||
|
menuPortalTarget={document.body}
|
||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
</Form.Group>
|
</Form.Group>
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export const ContainingGroupsMultiSet: React.FC<{
|
|||||||
disabled?: boolean;
|
disabled?: boolean;
|
||||||
onUpdate: (value: IRelatedGroupEntry[]) => void;
|
onUpdate: (value: IRelatedGroupEntry[]) => void;
|
||||||
onSetMode: (mode: GQL.BulkUpdateIdMode) => void;
|
onSetMode: (mode: GQL.BulkUpdateIdMode) => void;
|
||||||
|
menuPortalTarget?: HTMLElement | null;
|
||||||
}> = (props) => {
|
}> = (props) => {
|
||||||
const { mode, onUpdate, existingValue } = props;
|
const { mode, onUpdate, existingValue } = props;
|
||||||
|
|
||||||
@@ -48,12 +49,14 @@ export const ContainingGroupsMultiSet: React.FC<{
|
|||||||
value={props.value}
|
value={props.value}
|
||||||
onUpdate={props.onUpdate}
|
onUpdate={props.onUpdate}
|
||||||
disabled={props.disabled}
|
disabled={props.disabled}
|
||||||
|
menuPortalTarget={props.menuPortalTarget}
|
||||||
/>
|
/>
|
||||||
) : (
|
) : (
|
||||||
<GroupSelect
|
<GroupSelect
|
||||||
onSelect={(items) => onRemoveSet(items)}
|
onSelect={(items) => onRemoveSet(items)}
|
||||||
values={[]}
|
values={[]}
|
||||||
isDisabled={props.disabled}
|
isDisabled={props.disabled}
|
||||||
|
menuPortalTarget={props.menuPortalTarget}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -227,6 +227,7 @@ export const EditGroupsDialog: React.FC<IListOperationProps> = (
|
|||||||
}
|
}
|
||||||
ids={studioId ? [studioId] : []}
|
ids={studioId ? [studioId] : []}
|
||||||
isDisabled={isUpdating}
|
isDisabled={isUpdating}
|
||||||
|
menuPortalTarget={document.body}
|
||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
</Form.Group>
|
</Form.Group>
|
||||||
@@ -241,6 +242,7 @@ export const EditGroupsDialog: React.FC<IListOperationProps> = (
|
|||||||
existingValue={existingContainingGroups ?? []}
|
existingValue={existingContainingGroups ?? []}
|
||||||
value={containingGroups ?? []}
|
value={containingGroups ?? []}
|
||||||
mode={containingGroupsMode}
|
mode={containingGroupsMode}
|
||||||
|
menuPortalTarget={document.body}
|
||||||
/>
|
/>
|
||||||
</Form.Group>
|
</Form.Group>
|
||||||
<Form.Group controlId="director">
|
<Form.Group controlId="director">
|
||||||
@@ -267,6 +269,7 @@ export const EditGroupsDialog: React.FC<IListOperationProps> = (
|
|||||||
existingIds={existingTagIds ?? []}
|
existingIds={existingTagIds ?? []}
|
||||||
ids={tagIds ?? []}
|
ids={tagIds ?? []}
|
||||||
mode={tagMode}
|
mode={tagMode}
|
||||||
|
menuPortalTarget={document.body}
|
||||||
/>
|
/>
|
||||||
</Form.Group>
|
</Form.Group>
|
||||||
</Form>
|
</Form>
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ export const RelatedGroupTable: React.FC<{
|
|||||||
excludeIDs?: string[];
|
excludeIDs?: string[];
|
||||||
filterHook?: (f: ListFilterModel) => ListFilterModel;
|
filterHook?: (f: ListFilterModel) => ListFilterModel;
|
||||||
disabled?: boolean;
|
disabled?: boolean;
|
||||||
|
menuPortalTarget?: HTMLElement | null;
|
||||||
}> = (props) => {
|
}> = (props) => {
|
||||||
const { value, onUpdate } = props;
|
const { value, onUpdate } = props;
|
||||||
|
|
||||||
@@ -101,6 +102,7 @@ export const RelatedGroupTable: React.FC<{
|
|||||||
excludeIds={excludeIDs}
|
excludeIds={excludeIDs}
|
||||||
filterHook={props.filterHook}
|
filterHook={props.filterHook}
|
||||||
isDisabled={props.disabled}
|
isDisabled={props.disabled}
|
||||||
|
menuPortalTarget={props.menuPortalTarget}
|
||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
<Col xs={3}>
|
<Col xs={3}>
|
||||||
@@ -129,6 +131,7 @@ export const RelatedGroupTable: React.FC<{
|
|||||||
excludeIds={excludeIDs}
|
excludeIds={excludeIDs}
|
||||||
filterHook={props.filterHook}
|
filterHook={props.filterHook}
|
||||||
isDisabled={props.disabled}
|
isDisabled={props.disabled}
|
||||||
|
menuPortalTarget={props.menuPortalTarget}
|
||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
</Row>
|
</Row>
|
||||||
|
|||||||
@@ -237,6 +237,7 @@ export const EditImagesDialog: React.FC<IListOperationProps> = (
|
|||||||
}
|
}
|
||||||
ids={studioId ? [studioId] : []}
|
ids={studioId ? [studioId] : []}
|
||||||
isDisabled={isUpdating}
|
isDisabled={isUpdating}
|
||||||
|
menuPortalTarget={document.body}
|
||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
</Form.Group>
|
</Form.Group>
|
||||||
@@ -253,6 +254,7 @@ export const EditImagesDialog: React.FC<IListOperationProps> = (
|
|||||||
existingIds={existingPerformerIds ?? []}
|
existingIds={existingPerformerIds ?? []}
|
||||||
ids={performerIds ?? []}
|
ids={performerIds ?? []}
|
||||||
mode={performerMode}
|
mode={performerMode}
|
||||||
|
menuPortalTarget={document.body}
|
||||||
/>
|
/>
|
||||||
</Form.Group>
|
</Form.Group>
|
||||||
|
|
||||||
@@ -268,6 +270,7 @@ export const EditImagesDialog: React.FC<IListOperationProps> = (
|
|||||||
existingIds={existingTagIds ?? []}
|
existingIds={existingTagIds ?? []}
|
||||||
ids={tagIds ?? []}
|
ids={tagIds ?? []}
|
||||||
mode={tagMode}
|
mode={tagMode}
|
||||||
|
menuPortalTarget={document.body}
|
||||||
/>
|
/>
|
||||||
</Form.Group>
|
</Form.Group>
|
||||||
|
|
||||||
@@ -283,6 +286,7 @@ export const EditImagesDialog: React.FC<IListOperationProps> = (
|
|||||||
existingIds={existingGalleryIds ?? []}
|
existingIds={existingGalleryIds ?? []}
|
||||||
ids={galleryIds ?? []}
|
ids={galleryIds ?? []}
|
||||||
mode={galleryMode}
|
mode={galleryMode}
|
||||||
|
menuPortalTarget={document.body}
|
||||||
/>
|
/>
|
||||||
</Form.Group>
|
</Form.Group>
|
||||||
|
|
||||||
|
|||||||
@@ -369,6 +369,7 @@ export const EditPerformersDialog: React.FC<IListOperationProps> = (
|
|||||||
existingIds={existingTagIds ?? []}
|
existingIds={existingTagIds ?? []}
|
||||||
ids={tagIds.ids ?? []}
|
ids={tagIds.ids ?? []}
|
||||||
mode={tagIds.mode}
|
mode={tagIds.mode}
|
||||||
|
menuPortalTarget={document.body}
|
||||||
/>
|
/>
|
||||||
</Form.Group>
|
</Form.Group>
|
||||||
|
|
||||||
|
|||||||
@@ -226,6 +226,7 @@ export const EditScenesDialog: React.FC<IListOperationProps> = (
|
|||||||
ids={ids ?? []}
|
ids={ids ?? []}
|
||||||
existingIds={existingIds ?? []}
|
existingIds={existingIds ?? []}
|
||||||
mode={mode}
|
mode={mode}
|
||||||
|
menuPortalTarget={document.body}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -288,6 +289,7 @@ export const EditScenesDialog: React.FC<IListOperationProps> = (
|
|||||||
}
|
}
|
||||||
ids={studioId ? [studioId] : []}
|
ids={studioId ? [studioId] : []}
|
||||||
isDisabled={isUpdating}
|
isDisabled={isUpdating}
|
||||||
|
menuPortalTarget={document.body}
|
||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
</Form.Group>
|
</Form.Group>
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ interface IMultiSetProps {
|
|||||||
disabled?: boolean;
|
disabled?: boolean;
|
||||||
onUpdate: (ids: string[]) => void;
|
onUpdate: (ids: string[]) => void;
|
||||||
onSetMode: (mode: GQL.BulkUpdateIdMode) => void;
|
onSetMode: (mode: GQL.BulkUpdateIdMode) => void;
|
||||||
|
menuPortalTarget?: HTMLElement | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
const Select: React.FC<IMultiSetProps> = (props) => {
|
const Select: React.FC<IMultiSetProps> = (props) => {
|
||||||
@@ -36,6 +37,7 @@ const Select: React.FC<IMultiSetProps> = (props) => {
|
|||||||
ids={props.ids ?? []}
|
ids={props.ids ?? []}
|
||||||
// exclude file-based galleries when setting galleries
|
// exclude file-based galleries when setting galleries
|
||||||
extraCriteria={excludeFileBasedGalleries}
|
extraCriteria={excludeFileBasedGalleries}
|
||||||
|
menuPortalTarget={props.menuPortalTarget}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -48,6 +50,7 @@ const Select: React.FC<IMultiSetProps> = (props) => {
|
|||||||
isClearable={false}
|
isClearable={false}
|
||||||
onSelect={onUpdate}
|
onSelect={onUpdate}
|
||||||
ids={props.ids ?? []}
|
ids={props.ids ?? []}
|
||||||
|
menuPortalTarget={props.menuPortalTarget}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ function Tags(props: {
|
|||||||
existingIds={existingTagIds ?? []}
|
existingIds={existingTagIds ?? []}
|
||||||
ids={tagIDs.ids ?? []}
|
ids={tagIDs.ids ?? []}
|
||||||
mode={tagIDs.mode}
|
mode={tagIDs.mode}
|
||||||
|
menuPortalTarget={document.body}
|
||||||
/>
|
/>
|
||||||
</Form.Group>
|
</Form.Group>
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user