UNPKG

phx-react

Version:

PHX REACT

28 lines 1.26 kB
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'; import { DRAG_DROP_PASTE } from '@lexical/rich-text'; import { isMimeType, mediaFileReader } from '@lexical/utils'; import { COMMAND_PRIORITY_LOW } from 'lexical'; import { useEffect } from 'react'; import { INSERT_IMAGE_COMMAND } from '../ImagesPlugin'; const ACCEPTABLE_IMAGE_TYPES = ['image/', 'image/heic', 'image/heif', 'image/gif', 'image/webp']; export default function DragDropPaste() { const [editor] = useLexicalComposerContext(); useEffect(() => editor.registerCommand(DRAG_DROP_PASTE, (files) => { // eslint-disable-next-line @typescript-eslint/no-extra-semi ; (async () => { const filesResult = await mediaFileReader(files, [ACCEPTABLE_IMAGE_TYPES].flatMap((x) => x)); for (const { file, result } of filesResult) { if (isMimeType(file, ACCEPTABLE_IMAGE_TYPES)) { editor.dispatchCommand(INSERT_IMAGE_COMMAND, { altText: file.name, src: result, }); } } })(); return true; }, COMMAND_PRIORITY_LOW), [editor]); return null; } //# sourceMappingURL=index.js.map