Fixed popover not in front of other table rows
This commit is contained in:
parent
cf3477b04b
commit
1259a8a581
5 changed files with 26 additions and 10 deletions
|
|
@ -33,9 +33,8 @@ export default function Dropdown({
|
||||||
|
|
||||||
const refButton = useRef<HTMLButtonElement>(null);
|
const refButton = useRef<HTMLButtonElement>(null);
|
||||||
|
|
||||||
const PopoverContentDropdown = children
|
const PopoverContentDropdown =
|
||||||
? PopoverContent
|
children || editNode ? PopoverContent : PopoverContentWithoutPortal;
|
||||||
: PopoverContentWithoutPortal;
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,11 @@ import {
|
||||||
CommandList,
|
CommandList,
|
||||||
} from "../../../ui/command";
|
} from "../../../ui/command";
|
||||||
import { Input } from "../../../ui/input";
|
import { Input } from "../../../ui/input";
|
||||||
import { Popover, PopoverContentWithoutPortal } from "../../../ui/popover";
|
import {
|
||||||
|
Popover,
|
||||||
|
PopoverContent,
|
||||||
|
PopoverContentWithoutPortal,
|
||||||
|
} from "../../../ui/popover";
|
||||||
const CustomInputPopover = ({
|
const CustomInputPopover = ({
|
||||||
id,
|
id,
|
||||||
refInput,
|
refInput,
|
||||||
|
|
@ -39,6 +43,9 @@ const CustomInputPopover = ({
|
||||||
showOptions,
|
showOptions,
|
||||||
}) => {
|
}) => {
|
||||||
const setErrorData = useAlertStore.getState().setErrorData;
|
const setErrorData = useAlertStore.getState().setErrorData;
|
||||||
|
const PopoverContentInput = editNode
|
||||||
|
? PopoverContent
|
||||||
|
: PopoverContentWithoutPortal;
|
||||||
|
|
||||||
const handleInputChange = (e) => {
|
const handleInputChange = (e) => {
|
||||||
if (password) {
|
if (password) {
|
||||||
|
|
@ -107,7 +114,7 @@ const CustomInputPopover = ({
|
||||||
data-testid={editNode ? id + "-edit" : id}
|
data-testid={editNode ? id + "-edit" : id}
|
||||||
/>
|
/>
|
||||||
</PopoverAnchor>
|
</PopoverAnchor>
|
||||||
<PopoverContentWithoutPortal
|
<PopoverContentInput
|
||||||
className="nocopy nowheel nopan nodelete nodrag noundo p-0"
|
className="nocopy nowheel nopan nodelete nodrag noundo p-0"
|
||||||
style={{ minWidth: refInput?.current?.clientWidth ?? "200px" }}
|
style={{ minWidth: refInput?.current?.clientWidth ?? "200px" }}
|
||||||
side="bottom"
|
side="bottom"
|
||||||
|
|
@ -184,7 +191,7 @@ const CustomInputPopover = ({
|
||||||
</CommandGroup>
|
</CommandGroup>
|
||||||
</CommandList>
|
</CommandList>
|
||||||
</Command>
|
</Command>
|
||||||
</PopoverContentWithoutPortal>
|
</PopoverContentInput>
|
||||||
</Popover>
|
</Popover>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,11 @@ import {
|
||||||
CommandList,
|
CommandList,
|
||||||
} from "../../../ui/command";
|
} from "../../../ui/command";
|
||||||
import { Input } from "../../../ui/input";
|
import { Input } from "../../../ui/input";
|
||||||
import { Popover, PopoverContentWithoutPortal } from "../../../ui/popover";
|
import {
|
||||||
|
Popover,
|
||||||
|
PopoverContent,
|
||||||
|
PopoverContentWithoutPortal,
|
||||||
|
} from "../../../ui/popover";
|
||||||
const CustomInputPopoverObject = ({
|
const CustomInputPopoverObject = ({
|
||||||
id,
|
id,
|
||||||
refInput,
|
refInput,
|
||||||
|
|
@ -23,6 +27,7 @@ const CustomInputPopoverObject = ({
|
||||||
disabled,
|
disabled,
|
||||||
setShowOptions,
|
setShowOptions,
|
||||||
required,
|
required,
|
||||||
|
editNode,
|
||||||
className,
|
className,
|
||||||
placeholder,
|
placeholder,
|
||||||
onChange,
|
onChange,
|
||||||
|
|
@ -34,6 +39,10 @@ const CustomInputPopoverObject = ({
|
||||||
handleKeyDown,
|
handleKeyDown,
|
||||||
showOptions,
|
showOptions,
|
||||||
}) => {
|
}) => {
|
||||||
|
const PopoverContentInput = editNode
|
||||||
|
? PopoverContent
|
||||||
|
: PopoverContentWithoutPortal;
|
||||||
|
|
||||||
const handleInputChange = (e) => {
|
const handleInputChange = (e) => {
|
||||||
onChange && onChange(e.target.value);
|
onChange && onChange(e.target.value);
|
||||||
};
|
};
|
||||||
|
|
@ -79,7 +88,7 @@ const CustomInputPopoverObject = ({
|
||||||
data-testid={id}
|
data-testid={id}
|
||||||
/>
|
/>
|
||||||
</PopoverAnchor>
|
</PopoverAnchor>
|
||||||
<PopoverContentWithoutPortal
|
<PopoverContentInput
|
||||||
className="nocopy nowheel nopan nodelete nodrag noundo p-0"
|
className="nocopy nowheel nopan nodelete nodrag noundo p-0"
|
||||||
style={{ minWidth: refInput?.current?.clientWidth ?? "200px" }}
|
style={{ minWidth: refInput?.current?.clientWidth ?? "200px" }}
|
||||||
side="bottom"
|
side="bottom"
|
||||||
|
|
@ -159,7 +168,7 @@ const CustomInputPopoverObject = ({
|
||||||
</CommandGroup>
|
</CommandGroup>
|
||||||
</CommandList>
|
</CommandList>
|
||||||
</Command>
|
</Command>
|
||||||
</PopoverContentWithoutPortal>
|
</PopoverContentInput>
|
||||||
</Popover>
|
</Popover>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -108,6 +108,7 @@ export default function InputComponent({
|
||||||
setSelectedOptions={setSelectedOptions}
|
setSelectedOptions={setSelectedOptions}
|
||||||
options={objectOptions}
|
options={objectOptions}
|
||||||
value={value}
|
value={value}
|
||||||
|
editNode={editNode}
|
||||||
autoFocus={autoFocus}
|
autoFocus={autoFocus}
|
||||||
disabled={disabled}
|
disabled={disabled}
|
||||||
setShowOptions={setShowOptions}
|
setShowOptions={setShowOptions}
|
||||||
|
|
|
||||||
|
|
@ -120,7 +120,7 @@ export default function TableNodeCellRender({
|
||||||
onSelect={(value) => handleOnNewValue(value, templateData.key)}
|
onSelect={(value) => handleOnNewValue(value, templateData.key)}
|
||||||
value={templateValue ?? "Choose an option"}
|
value={templateValue ?? "Choose an option"}
|
||||||
id={"dropdown-edit-" + templateData.name}
|
id={"dropdown-edit-" + templateData.name}
|
||||||
></Dropdown>
|
/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue