UNPKG

tldraw

Version:

A tiny little drawing editor.

8 lines (7 loc) 2.89 kB
{ "version": 3, "sources": ["../../../../src/lib/ui/components/Dialogs.tsx"], "sourcesContent": ["import * as _Dialog from '@radix-ui/react-dialog'\nimport { useContainer, useValue } from '@tldraw/editor'\nimport { memo, useCallback } from 'react'\nimport { TLUiDialog, useDialogs } from '../context/dialogs'\n\n/** @internal */\nconst TldrawUiDialog = ({ id, component: ModalContent, onClose }: TLUiDialog) => {\n\tconst { removeDialog } = useDialogs()\n\n\tconst container = useContainer()\n\n\tconst handleOpenChange = useCallback(\n\t\t(isOpen: boolean) => {\n\t\t\tif (!isOpen) {\n\t\t\t\tif (onClose) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tonClose()\n\t\t\t\t\t} catch (err: any) {\n\t\t\t\t\t\tconsole.warn(err)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tremoveDialog(id)\n\t\t\t}\n\t\t},\n\t\t[id, onClose, removeDialog]\n\t)\n\n\treturn (\n\t\t<_Dialog.Root onOpenChange={handleOpenChange} defaultOpen>\n\t\t\t<_Dialog.Portal container={container}>\n\t\t\t\t<_Dialog.Overlay\n\t\t\t\t\tdir=\"ltr\"\n\t\t\t\t\tclassName=\"tlui-dialog__overlay\"\n\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t// only close if the click is on the overlay itself, ignore bubbling clicks\n\t\t\t\t\t\tif (e.target === e.currentTarget) handleOpenChange(false)\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<_Dialog.Content dir=\"ltr\" className=\"tlui-dialog__content\" aria-describedby={undefined}>\n\t\t\t\t\t\t<ModalContent onClose={() => handleOpenChange(false)} />\n\t\t\t\t\t</_Dialog.Content>\n\t\t\t\t</_Dialog.Overlay>\n\t\t\t</_Dialog.Portal>\n\t\t</_Dialog.Root>\n\t)\n}\n\n/** @public @react */\nexport const TldrawUiDialogs = memo(function TldrawUiDialogs() {\n\tconst { dialogs } = useDialogs()\n\tconst dialogsArray = useValue('dialogs', () => dialogs.get(), [dialogs])\n\treturn dialogsArray.map((dialog) => <TldrawUiDialog key={dialog.id} {...dialog} />)\n})\n"], "mappings": "AAuCM;AAvCN,YAAY,aAAa;AACzB,SAAS,cAAc,gBAAgB;AACvC,SAAS,MAAM,mBAAmB;AAClC,SAAqB,kBAAkB;AAGvC,MAAM,iBAAiB,CAAC,EAAE,IAAI,WAAW,cAAc,QAAQ,MAAkB;AAChF,QAAM,EAAE,aAAa,IAAI,WAAW;AAEpC,QAAM,YAAY,aAAa;AAE/B,QAAM,mBAAmB;AAAA,IACxB,CAAC,WAAoB;AACpB,UAAI,CAAC,QAAQ;AACZ,YAAI,SAAS;AACZ,cAAI;AACH,oBAAQ;AAAA,UACT,SAAS,KAAU;AAClB,oBAAQ,KAAK,GAAG;AAAA,UACjB;AAAA,QACD;AACA,qBAAa,EAAE;AAAA,MAChB;AAAA,IACD;AAAA,IACA,CAAC,IAAI,SAAS,YAAY;AAAA,EAC3B;AAEA,SACC,oBAAC,QAAQ,MAAR,EAAa,cAAc,kBAAkB,aAAW,MACxD,8BAAC,QAAQ,QAAR,EAAe,WACf;AAAA,IAAC,QAAQ;AAAA,IAAR;AAAA,MACA,KAAI;AAAA,MACJ,WAAU;AAAA,MACV,SAAS,CAAC,MAAM;AAEf,YAAI,EAAE,WAAW,EAAE,cAAe,kBAAiB,KAAK;AAAA,MACzD;AAAA,MAEA,8BAAC,QAAQ,SAAR,EAAgB,KAAI,OAAM,WAAU,wBAAuB,oBAAkB,QAC7E,8BAAC,gBAAa,SAAS,MAAM,iBAAiB,KAAK,GAAG,GACvD;AAAA;AAAA,EACD,GACD,GACD;AAEF;AAGO,MAAM,kBAAkB,KAAK,SAASA,mBAAkB;AAC9D,QAAM,EAAE,QAAQ,IAAI,WAAW;AAC/B,QAAM,eAAe,SAAS,WAAW,MAAM,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC;AACvE,SAAO,aAAa,IAAI,CAAC,WAAW,oBAAC,kBAAgC,GAAG,UAAf,OAAO,EAAgB,CAAE;AACnF,CAAC;", "names": ["TldrawUiDialogs"] }