update Base modal to get min size by props
This commit is contained in:
parent
3b41e189d3
commit
9841d92ab1
1 changed files with 26 additions and 2 deletions
|
|
@ -33,8 +33,14 @@ interface BaseModalProps {
|
||||||
children: [React.ReactElement<ContentProps>, React.ReactElement<HeaderProps>];
|
children: [React.ReactElement<ContentProps>, React.ReactElement<HeaderProps>];
|
||||||
open: boolean;
|
open: boolean;
|
||||||
setOpen: (open: boolean) => void;
|
setOpen: (open: boolean) => void;
|
||||||
|
size?: "small" | "medium" | "large";
|
||||||
}
|
}
|
||||||
function BaseModal({ open, setOpen, children }: BaseModalProps) {
|
function BaseModal({
|
||||||
|
open,
|
||||||
|
setOpen,
|
||||||
|
children,
|
||||||
|
size = "large",
|
||||||
|
}: BaseModalProps) {
|
||||||
const { closePopUp, setCloseEdit } = useContext(PopUpContext);
|
const { closePopUp, setCloseEdit } = useContext(PopUpContext);
|
||||||
|
|
||||||
function setModalOpen(x: boolean) {
|
function setModalOpen(x: boolean) {
|
||||||
|
|
@ -52,11 +58,29 @@ function BaseModal({ open, setOpen, children }: BaseModalProps) {
|
||||||
const ContentChild = React.Children.toArray(children).find(
|
const ContentChild = React.Children.toArray(children).find(
|
||||||
(child) => (child as React.ReactElement).type === Content
|
(child) => (child as React.ReactElement).type === Content
|
||||||
);
|
);
|
||||||
|
|
||||||
|
let sizeClass = "";
|
||||||
|
|
||||||
|
switch (size) {
|
||||||
|
case "small":
|
||||||
|
sizeClass = "min-w-[40vw]";
|
||||||
|
break;
|
||||||
|
case "medium":
|
||||||
|
sizeClass = "min-w-[60vw]";
|
||||||
|
break;
|
||||||
|
case "large":
|
||||||
|
sizeClass = "min-w-[80vw]";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
sizeClass = "min-w-[80vw]";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
//UPDATE COLORS AND STYLE CLASSSES
|
//UPDATE COLORS AND STYLE CLASSSES
|
||||||
return (
|
return (
|
||||||
<Dialog open={true} onOpenChange={setModalOpen}>
|
<Dialog open={true} onOpenChange={setModalOpen}>
|
||||||
<DialogTrigger className="hidden"></DialogTrigger>
|
<DialogTrigger className="hidden"></DialogTrigger>
|
||||||
<DialogContent className="min-w-[80vw]">
|
<DialogContent className={sizeClass}>
|
||||||
{headerChild}
|
{headerChild}
|
||||||
<div className="mt-2 flex h-[80vh] w-full ">{ContentChild}</div>
|
<div className="mt-2 flex h-[80vh] w-full ">{ContentChild}</div>
|
||||||
</DialogContent>
|
</DialogContent>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue