furina.id/src/hooks/useModal.ts

22 lines
403 B
TypeScript
Raw Normal View History

2024-01-06 20:33:36 +07:00
import { useState } from "react";
2024-01-10 22:24:12 +07:00
const useModal = <T = unknown>() => {
2024-01-06 20:33:36 +07:00
const [isOpen, setOpen] = useState(false);
2024-01-10 22:24:12 +07:00
const [data, setData] = useState<T | undefined | null>(null);
2024-01-06 20:33:36 +07:00
return {
isOpen,
2024-01-10 22:24:12 +07:00
data,
onOpen(_data?: T | null) {
2024-01-06 20:33:36 +07:00
setOpen(true);
2024-01-10 22:24:12 +07:00
setData(_data);
2024-01-06 20:33:36 +07:00
},
onClose() {
setOpen(false);
},
onOpenChange: setOpen,
};
};
export default useModal;