import clsx from "clsx"; import * as React from "react"; import { useRef, useState } from "react"; import { Dialog, Popover } from "react-aria-components"; import { useTranslation } from "react-i18next"; import { useCopyToClipboard } from "react-use"; import { useTimeFormat } from "~/hooks/useTimeFormat"; import { SendouButton } from "./elements/Button"; import popoverStyles from "./elements/Popover.module.css"; import { CheckmarkIcon } from "./icons/Checkmark"; import { ClipboardIcon } from "./icons/Clipboard"; import styles from "./TimePopover.module.css"; export default function TimePopover({ time, options = { minute: "numeric", hour: "numeric", day: "numeric", month: "long", }, underline = true, className, footerText, }: { time: Date; options?: Intl.DateTimeFormatOptions; underline?: boolean; className?: string; footerText?: string; }) { const { formatDateTime, formatTime } = useTimeFormat(); const [open, setOpen] = useState(false); const triggerRef = useRef(null); const { t } = useTranslation(["common"]); const [state, copyToClipboard] = useCopyToClipboard(); const [copySuccess, setCopySuccess] = React.useState(false); React.useEffect(() => { if (!state.value) return; setCopySuccess(true); const timeout = setTimeout(() => setCopySuccess(false), 2000); return () => clearTimeout(timeout); }, [state]); return (