import { getContextMenuLabel } from "../components/hyperlink/Hyperlink"; import { LinkIcon } from "../components/icons"; import { ToolButton } from "../components/ToolButton"; import { isEmbeddableElement } from "../element/typeChecks"; import { t } from "../i18n"; import { KEYS } from "../keys"; import { getSelectedElements } from "../scene"; import { getShortcutKey } from "../utils"; import { register } from "./register"; export const actionLink = register({ name: "hyperlink", perform: (elements, appState) => { if (appState.showHyperlinkPopup === "editor") { return false; } return { elements, appState: { ...appState, showHyperlinkPopup: "editor", openMenu: null, }, commitToHistory: true, }; }, trackEvent: { category: "hyperlink", action: "click" }, keyTest: (event) => event[KEYS.CTRL_OR_CMD] && event.key === KEYS.K, contextItemLabel: (elements, appState) => getContextMenuLabel(elements, appState), predicate: (elements, appState) => { const selectedElements = getSelectedElements(elements, appState); return selectedElements.length === 1; }, PanelComponent: ({ elements, appState, updateData }) => { const selectedElements = getSelectedElements(elements, appState); return ( updateData(null)} selected={selectedElements.length === 1 && !!selectedElements[0].link} /> ); }, });