Files
Momento/memento-note/lib/editor/smart-paste-extension.ts
Antigravity f46654f574 feat: editor improvements and architectural grid prototype
Multiple feature additions and improvements across the application:

- NextGen Editor: drag handles, smart paste, block actions
- Structured views: Kanban and table layouts for notes
- Architectural Grid: new brainstorming/agent interface prototype
- Flashcards: SM-2 revision algorithm with AI generation
- MCP server: robustness improvements
- Graph/PDF chat: fix click propagation and copy behavior
- Various UI/UX enhancements and bug fixes

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 19:45:15 +00:00

40 lines
876 B
TypeScript

import { Extension } from '@tiptap/core'
import type { EditorView } from '@tiptap/pm/view'
import { Plugin, PluginKey } from '@tiptap/pm/state'
export type SmartPasteHandler = (view: EditorView, event: ClipboardEvent) => boolean
export const smartPastePluginKey = new PluginKey('smartPaste')
declare module '@tiptap/core' {
interface Storage {
smartPaste: {
onPaste: SmartPasteHandler | null
}
}
}
export const SmartPasteExtension = Extension.create({
name: 'smartPaste',
addStorage() {
return {
onPaste: null as SmartPasteHandler | null,
}
},
addProseMirrorPlugins() {
const storage = this.storage
return [
new Plugin({
key: smartPastePluginKey,
props: {
handlePaste(view, event) {
return storage.onPaste?.(view, event) ?? false
},
},
}),
]
},
})