mirror of
https://github.com/fergalmoran/supanextail.git
synced 2026-01-06 16:45:07 +00:00
86 lines
3.1 KiB
JavaScript
86 lines
3.1 KiB
JavaScript
import { Dialog, Transition } from "@headlessui/react";
|
||
import { Fragment, useState } from "react";
|
||
|
||
export default function MyModal() {
|
||
let [isOpen, setIsOpen] = useState(false);
|
||
|
||
function closeModal() {
|
||
setIsOpen(false);
|
||
}
|
||
|
||
function openModal() {
|
||
setIsOpen(true);
|
||
}
|
||
|
||
return (
|
||
<>
|
||
<div className=' inset-0 flex items-center justify-center'>
|
||
<button
|
||
type='button'
|
||
onClick={openModal}
|
||
className='px-4 py-2 text-sm font-medium text-white bg-black rounded-md bg-opacity-20 hover:bg-opacity-30 focus:outline-none focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-opacity-75'>
|
||
Open dialog
|
||
</button>
|
||
</div>
|
||
|
||
<Transition appear show={isOpen} as={Fragment}>
|
||
<Dialog
|
||
as='div'
|
||
className='fixed inset-0 z-10 overflow-y-auto'
|
||
onClose={closeModal}>
|
||
<div className='min-h-screen px-4 text-center'>
|
||
<Transition.Child
|
||
as={Fragment}
|
||
enter='ease-out duration-300'
|
||
enterFrom='opacity-0'
|
||
enterTo='opacity-100'
|
||
leave='ease-in duration-200'
|
||
leaveFrom='opacity-100'
|
||
leaveTo='opacity-0'>
|
||
<Dialog.Overlay className='fixed inset-0' />
|
||
</Transition.Child>
|
||
|
||
{/* This element is to trick the browser into centering the modal contents. */}
|
||
<span
|
||
className='inline-block h-screen align-middle'
|
||
aria-hidden='true'>
|
||
​
|
||
</span>
|
||
<Transition.Child
|
||
as={Fragment}
|
||
enter='ease-out duration-300'
|
||
enterFrom='opacity-0 scale-95'
|
||
enterTo='opacity-100 scale-100'
|
||
leave='ease-in duration-200'
|
||
leaveFrom='opacity-100 scale-100'
|
||
leaveTo='opacity-0 scale-95'>
|
||
<div className='inline-block w-full max-w-md p-6 my-8 overflow-hidden text-left align-middle transition-all transform bg-white shadow-xl rounded-2xl'>
|
||
<Dialog.Title
|
||
as='h3'
|
||
className='text-lg font-medium leading-6 text-gray-900'>
|
||
Payment successful
|
||
</Dialog.Title>
|
||
<div className='mt-2'>
|
||
<p className='text-sm text-gray-500'>
|
||
Your payment has been successfully submitted. We’ve sent
|
||
your an email with all of the details of your order.
|
||
</p>
|
||
</div>
|
||
|
||
<div className='mt-4'>
|
||
<button
|
||
type='button'
|
||
className='inline-flex justify-center px-4 py-2 text-sm font-medium text-blue-900 bg-blue-100 border border-transparent rounded-md hover:bg-blue-200 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-blue-500'
|
||
onClick={closeModal}>
|
||
Got it, thanks!
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</Transition.Child>
|
||
</div>
|
||
</Dialog>
|
||
</Transition>
|
||
</>
|
||
);
|
||
}
|