mirror of
https://github.com/nextui-org/nextui.git
synced 2025-12-08 19:26:11 +00:00
68 lines
2.1 KiB
JavaScript
68 lines
2.1 KiB
JavaScript
import {useState} from "react";
|
|
import {
|
|
Modal,
|
|
ModalContent,
|
|
ModalHeader,
|
|
ModalBody,
|
|
ModalFooter,
|
|
Button,
|
|
useDisclosure,
|
|
RadioGroup,
|
|
Radio,
|
|
} from "@heroui/react";
|
|
|
|
export default function App() {
|
|
const {isOpen, onOpen, onOpenChange} = useDisclosure();
|
|
const [modalPlacement, setModalPlacement] = useState("auto");
|
|
|
|
return (
|
|
<div className="flex px-10 min-h-[80vh] justify-center items-center flex-col gap-4">
|
|
<Button className="max-w-fit" onPress={onOpen}>
|
|
Open Modal
|
|
</Button>
|
|
<RadioGroup
|
|
label="Select modal placement"
|
|
orientation="horizontal"
|
|
value={modalPlacement}
|
|
onValueChange={setModalPlacement}
|
|
>
|
|
<Radio value="auto">auto</Radio>
|
|
<Radio value="top">top</Radio>
|
|
<Radio value="bottom">bottom</Radio>
|
|
<Radio value="center">center</Radio>
|
|
<Radio value="top-center">top-center</Radio>
|
|
<Radio value="bottom-center">bottom-center</Radio>
|
|
</RadioGroup>
|
|
<Modal isOpen={isOpen} placement={modalPlacement} onOpenChange={onOpenChange}>
|
|
<ModalContent>
|
|
{(onClose) => (
|
|
<>
|
|
<ModalHeader className="flex flex-col gap-1">Modal Title</ModalHeader>
|
|
<ModalBody>
|
|
<p>
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non
|
|
risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor
|
|
quam.
|
|
</p>
|
|
<p>
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non
|
|
risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor
|
|
quam.
|
|
</p>
|
|
</ModalBody>
|
|
<ModalFooter>
|
|
<Button color="danger" variant="light" onPress={onClose}>
|
|
Close
|
|
</Button>
|
|
<Button color="primary" onPress={onClose}>
|
|
Action
|
|
</Button>
|
|
</ModalFooter>
|
|
</>
|
|
)}
|
|
</ModalContent>
|
|
</Modal>
|
|
</div>
|
|
);
|
|
}
|