import useClipboard from 'react-use-clipboard'; import {useEntryShareableLink} from '../../shareable-link/queries/use-entry-shareable-link'; import {useCreateShareableLink} from '../../shareable-link/queries/create-shareable-link'; import {useDeleteShareableLink} from '../../shareable-link/queries/use-delete-shareable-link'; import {Button} from '@common/ui/buttons/button'; import {ShareableLink} from '../../shareable-link/shareable-link'; import {TextField} from '@common/ui/forms/input-field/text-field/text-field'; import type {ShareDialogActivePanel} from '../share-dialog'; import {Switch} from '@common/ui/forms/toggle/switch'; import {randomString} from '@common/utils/string/random-string'; import {Trans} from '@common/i18n/trans'; import {useTrans} from '@common/i18n/use-trans'; import {useActiveDialogEntry} from '../../drive-store'; import {DriveEntry} from '../../files/drive-entry'; import {useSettings} from '@common/core/settings/use-settings'; interface ShareableLinkPanelProps { setActivePanel: (name: ShareDialogActivePanel) => void; entry: DriveEntry; focusInput?: boolean; } export function ShareableLinkPanel({ setActivePanel, entry, focusInput, }: ShareableLinkPanelProps) { const query = useEntryShareableLink(entry.id); const linkExists = !!query.data?.link; const createLink = useCreateShareableLink(); const deleteLink = useDeleteShareableLink(); const isLoading = query.isLoading || createLink.isPending || deleteLink.isPending; return (