{ "version": 3, "sources": ["../../../../src/lib/ui/hooks/useInsertMedia.ts"], "sourcesContent": ["import { useEditor } from '@tldraw/editor'\nimport { useCallback, useEffect, useRef } from 'react'\n\nexport function useInsertMedia() {\n\tconst editor = useEditor()\n\tconst inputRef = useRef()\n\n\tuseEffect(() => {\n\t\tconst input = window.document.createElement('input')\n\t\tinput.type = 'file'\n\t\tinput.accept = 'image/jpeg,image/png,image/gif,image/svg+xml,video/mp4,video/quicktime'\n\t\tinput.multiple = true\n\t\tinputRef.current = input\n\t\tasync function onchange(e: Event) {\n\t\t\tconst fileList = (e.target as HTMLInputElement).files\n\t\t\tif (!fileList || fileList.length === 0) return\n\t\t\tawait editor.putExternalContent({\n\t\t\t\ttype: 'files',\n\t\t\t\tfiles: Array.from(fileList),\n\t\t\t\tpoint: editor.viewportPageBounds.center,\n\t\t\t\tignoreParent: false,\n\t\t\t})\n\t\t\tinput.value = ''\n\t\t}\n\t\tinput.addEventListener('change', onchange)\n\t\treturn () => {\n\t\t\tinputRef.current = undefined\n\t\t\tinput.removeEventListener('change', onchange)\n\t\t}\n\t}, [editor])\n\n\treturn useCallback(() => {\n\t\tinputRef.current?.click()\n\t}, [inputRef])\n}\n"], "mappings": "AAAA,SAAS,iBAAiB;AAC1B,SAAS,aAAa,WAAW,cAAc;AAExC,SAAS,iBAAiB;AAChC,QAAM,SAAS,UAAU;AACzB,QAAM,WAAW,OAAyB;AAE1C,YAAU,MAAM;AACf,UAAM,QAAQ,OAAO,SAAS,cAAc,OAAO;AACnD,UAAM,OAAO;AACb,UAAM,SAAS;AACf,UAAM,WAAW;AACjB,aAAS,UAAU;AACnB,mBAAe,SAAS,GAAU;AACjC,YAAM,WAAY,EAAE,OAA4B;AAChD,UAAI,CAAC,YAAY,SAAS,WAAW;AAAG;AACxC,YAAM,OAAO,mBAAmB;AAAA,QAC/B,MAAM;AAAA,QACN,OAAO,MAAM,KAAK,QAAQ;AAAA,QAC1B,OAAO,OAAO,mBAAmB;AAAA,QACjC,cAAc;AAAA,MACf,CAAC;AACD,YAAM,QAAQ;AAAA,IACf;AACA,UAAM,iBAAiB,UAAU,QAAQ;AACzC,WAAO,MAAM;AACZ,eAAS,UAAU;AACnB,YAAM,oBAAoB,UAAU,QAAQ;AAAA,IAC7C;AAAA,EACD,GAAG,CAAC,MAAM,CAAC;AAEX,SAAO,YAAY,MAAM;AACxB,aAAS,SAAS,MAAM;AAAA,EACzB,GAAG,CAAC,QAAQ,CAAC;AACd;", "names": [] }