@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
1 lines • 2.12 kB
Source Map (JSON)
{"version":3,"file":"ModalStackItem.mjs","names":["contextValue: ModalContextValue","Modal"],"sources":["../../src/Modal/ModalStackItem.tsx"],"sourcesContent":["'use client';\n\nimport { memo } from 'react';\n\nimport Modal from './Modal';\nimport { ModalProvider } from './ModalProvider';\nimport type { ImperativeModalProps, ModalContextValue } from './type';\n\nexport type ModalStackItemProps = {\n id: string;\n onClose: (id: string) => void;\n onDestroy: (id: string) => void;\n onUpdate: (id: string, nextProps: Partial<ImperativeModalProps>) => void;\n props: ImperativeModalProps;\n};\n\nexport const ModalStackItem = memo(\n ({ id, props, onClose, onUpdate, onDestroy }: ModalStackItemProps) => {\n const { afterClose, afterOpenChange, children, onCancel, open, ...rest } = props;\n const close = () => onClose(id);\n const setCanDismissByClickOutside = (value: boolean) => {\n onUpdate(id, { maskClosable: value });\n };\n const contextValue: ModalContextValue = { close, setCanDismissByClickOutside };\n\n return (\n <Modal\n {...rest}\n afterClose={() => {\n afterClose?.();\n onDestroy(id);\n }}\n afterOpenChange={(nextOpen) => {\n afterOpenChange?.(nextOpen);\n if (!nextOpen) onDestroy(id);\n }}\n onCancel={(event) => {\n onCancel?.(event as any);\n close();\n }}\n open={open ?? true}\n >\n <ModalProvider value={contextValue}>{children}</ModalProvider>\n </Modal>\n );\n },\n);\n\nModalStackItem.displayName = 'ModalStackItem';\n"],"mappings":";;;;;;;;AAgBA,MAAa,iBAAiB,MAC3B,EAAE,IAAI,OAAO,SAAS,UAAU,gBAAqC;CACpE,MAAM,EAAE,YAAY,iBAAiB,UAAU,UAAU,MAAM,GAAG,SAAS;CAC3E,MAAM,cAAc,QAAQ,GAAG;CAC/B,MAAM,+BAA+B,UAAmB;AACtD,WAAS,IAAI,EAAE,cAAc,OAAO,CAAC;;CAEvC,MAAMA,eAAkC;EAAE;EAAO;EAA6B;AAE9E,QACE,oBAACC;EACC,GAAI;EACJ,kBAAkB;AAChB,iBAAc;AACd,aAAU,GAAG;;EAEf,kBAAkB,aAAa;AAC7B,qBAAkB,SAAS;AAC3B,OAAI,CAAC,SAAU,WAAU,GAAG;;EAE9B,WAAW,UAAU;AACnB,cAAW,MAAa;AACxB,UAAO;;EAET,MAAM,QAAQ;YAEd,oBAAC;GAAc,OAAO;GAAe;IAAyB;GACxD;EAGb;AAED,eAAe,cAAc"}