UNPKG

phx-react

Version:

PHX REACT

37 lines 1.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = PasteLogPlugin; const tslib_1 = require("tslib"); const LexicalComposerContext_1 = require("@lexical/react/LexicalComposerContext"); const lexical_1 = require("lexical"); const React = tslib_1.__importStar(require("react")); const react_1 = require("react"); function PasteLogPlugin() { const [editor] = (0, LexicalComposerContext_1.useLexicalComposerContext)(); const [isActive, setIsActive] = (0, react_1.useState)(false); const [lastClipboardData, setLastClipboardData] = (0, react_1.useState)(null); (0, react_1.useEffect)(() => { if (isActive) { return editor.registerCommand(lexical_1.PASTE_COMMAND, (e) => { const { clipboardData } = e; const allData = []; if (clipboardData && clipboardData.types) { clipboardData.types.forEach((type) => { allData.push(type.toUpperCase(), clipboardData.getData(type)); }); } setLastClipboardData(allData.join('\n\n')); return false; }, lexical_1.COMMAND_PRIORITY_NORMAL); } return () => { console.log('clean up'); }; }, [editor, isActive]); return (React.createElement(React.Fragment, null, React.createElement("button", { className: `editor-dev-button ${isActive ? 'active' : ''}`, id: 'paste-log-button', onClick: () => { setIsActive(!isActive); }, title: isActive ? 'Disable paste log' : 'Enable paste log', type: 'button' }), isActive && lastClipboardData !== null ? React.createElement("pre", null, lastClipboardData) : null)); } //# sourceMappingURL=index.js.map