web-arah-negeri/components/useDisclosure.tsx

14 lines
416 B
TypeScript
Raw Permalink Normal View History

2025-10-17 10:21:16 +00:00
import { useState, useCallback } from "react";
function useDisclosure(initial = false) {
const [isOpen, setIsOpen] = useState(initial);
const onOpen = useCallback(() => setIsOpen(true), []);
const onClose = useCallback(() => setIsOpen(false), []);
const onOpenChange = useCallback(() => setIsOpen((prev) => !prev), []);
return { isOpen, onOpen, onClose, onOpenChange };
}
export default useDisclosure;