"use client"; import { motion } from "motion/react"; import { type ComponentProps, type Dispatch, type SetStateAction, createContext, use, useCallback, useState, useEffect, } from "react"; import { Modal, ModalOverlay, Dialog, DialogTrigger, Select, } from "react-aria-components"; import { useSetOverlayVisible } from "../overlay-visible-context.js"; const MotionModalOverlay = motion.create(ModalOverlay); const MotionDialog = motion.create(Dialog); export const ModalDialogTrigger = ( props: ComponentProps, ) => { const [animation, setAnimation] = useState("unmounted"); const handleOpenChange = useCallback( (isOpen: boolean) => { setAnimation(isOpen ? "visible" : "hidden"); }, [setAnimation], ); useEffect(() => { if (props.defaultOpen) { setAnimation("visible"); } }, [props.defaultOpen]); return ( ); }; export const ModalSelect = (props: ComponentProps) => { const [animation, setAnimation] = useState("unmounted"); const handleOpenChange = useCallback( (isOpen: boolean) => { setAnimation(isOpen ? "visible" : "hidden"); }, [setAnimation], ); return (