import { defineComponent, type Ref, h } from 'vue' import type { LinkTooltipConfig } from '../slices' import { Icon } from '../../__internal__/components/icon' import { keepAlive } from '../../__internal__/keep-alive' keepAlive(h) type PreviewLinkProps = { config: Ref src: Ref onEdit: Ref<() => void> onRemove: Ref<() => void> } export const PreviewLink = defineComponent({ props: { config: { type: Object, required: true, }, src: { type: Object, required: true, }, onEdit: { type: Object, required: true, }, onRemove: { type: Object, required: true, }, }, setup({ config, src, onEdit, onRemove }) { const onClickEditButton = (e: Event) => { e.preventDefault() e.stopPropagation() onEdit.value() } const onClickRemoveButton = (e: Event) => { e.preventDefault() e.stopPropagation() onRemove.value() } const onClickPreview = (e: Event) => { e.preventDefault() const link = src.value if (navigator.clipboard && link) { navigator.clipboard .writeText(link) .then(() => { config.value.onCopyLink(link) }) .catch((e) => console.error(e)) } } return () => { return ( ) } }, })