/** * Tiny shared clipboard for canvas node copy/paste. * * Both the context menu (right-click Copy/Paste) and the keyboard shortcuts * hook (Ctrl/Cmd+C / Ctrl/Cmd+V) read and write this single module-level * store, so copying a node via one entry point and pasting via the other * behaves consistently instead of each maintaining its own clipboard. * * Deliberately not React state -- nothing in the UI needs to re-render * reactively when the clipboard changes; consumers just read the current * value at the moment they need it (on paste, or when a menu opens). */ let clipboardNodeId: string | null = null; /** Returns the id of the node currently on the clipboard, or null if empty. */ export function getClipboardNodeId(): string | null { return clipboardNodeId; } /** Sets (or clears, with `null`) the node id on the clipboard. */ export function setClipboardNodeId(nodeId: string | null): void { clipboardNodeId = nodeId; }