diff options
| author | Factiven <[email protected]> | 2023-12-24 13:03:54 +0700 |
|---|---|---|
| committer | Factiven <[email protected]> | 2023-12-24 13:03:54 +0700 |
| commit | 50a0f0240d7fef133eb5acc1bea2b1168b08e9db (patch) | |
| tree | 307e09e505580415a58d64b5fc3580e9235869f1 /components/modal.tsx | |
| parent | Update README.md (#104) (diff) | |
| download | moopa-50a0f0240d7fef133eb5acc1bea2b1168b08e9db.tar.xz moopa-50a0f0240d7fef133eb5acc1bea2b1168b08e9db.zip | |
migrate to typescript
Diffstat (limited to 'components/modal.tsx')
| -rw-r--r-- | components/modal.tsx | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/components/modal.tsx b/components/modal.tsx new file mode 100644 index 0000000..6865560 --- /dev/null +++ b/components/modal.tsx @@ -0,0 +1,25 @@ +type ModalProps = { + open: boolean; + onClose: () => void; + children: React.ReactNode; +}; + +export default function Modal({ open, onClose, children }: ModalProps) { + return ( + <div + onClick={onClose} + className={`fixed z-[999] inset-0 flex justify-center items-center transition-colors ${ + open ? "visible bg-black bg-opacity-50 backdrop-blur-sm" : "invisible" + }`} + > + <div + onClick={(e) => e.stopPropagation()} + className={`shadow rounded-xl transition-all ${ + open ? "scale-100 opacity-100" : "scale-75 opacity-0" + }`} + > + {children} + </div> + </div> + ); +} |