import { useRef, useState } from "react"; import { copyTextToSystemClipboard } from "../clipboard"; import { useI18n } from "../i18n"; import { Dialog } from "./Dialog"; import { TextField } from "./TextField"; import { FilledButton } from "./FilledButton"; import { useCopyStatus } from "../hooks/useCopiedIndicator"; import { copyIcon } from "./icons"; import "./ShareableLinkDialog.scss"; export type ShareableLinkDialogProps = { link: string; onCloseRequest: () => void; setErrorMessage: (error: string) => void; }; export const ShareableLinkDialog = ({ link, onCloseRequest, setErrorMessage, }: ShareableLinkDialogProps) => { const { t } = useI18n(); const [, setJustCopied] = useState(false); const timerRef = useRef(0); const ref = useRef(null); const copyRoomLink = async () => { try { await copyTextToSystemClipboard(link); } catch (e) { setErrorMessage(t("errors.copyToSystemClipboardFailed")); } setJustCopied(true); if (timerRef.current) { window.clearTimeout(timerRef.current); } timerRef.current = window.setTimeout(() => { setJustCopied(false); }, 3000); ref.current?.select(); }; const { onCopy, copyStatus } = useCopyStatus(); return (

Shareable link

{ onCopy(); copyRoomLink(); }} />
🔒 {t("alerts.uploadedSecurly")}
); };