UNPKG

@lobehub/ui

Version:

Lobe UI is an open-source UI component library for building AIGC web apps

1 lines 1.89 kB
{"version":3,"file":"RawModalStackItem.mjs","names":["contextValue: ModalContextValue"],"sources":["../../src/Modal/RawModalStackItem.tsx"],"sourcesContent":["'use client';\n\nimport type { ComponentType } from 'react';\nimport { memo } from 'react';\n\nimport { ModalProvider } from './ModalProvider';\nimport type { ModalContextValue, RawModalOptions } from './type';\n\nexport type RawModalStackItemProps = {\n component: ComponentType<any>;\n id: string;\n onClose: (id: string) => void;\n onUpdate: (id: string, nextProps: Record<string, unknown>) => void;\n open: boolean;\n options?: RawModalOptions<PropertyKey, PropertyKey>;\n props: Record<string, unknown>;\n};\n\nexport const RawModalStackItem = memo(\n ({\n component: Component,\n id,\n onClose,\n onUpdate,\n open,\n options,\n props,\n }: RawModalStackItemProps) => {\n const close = () => onClose(id);\n const setCanDismissByClickOutside = (value: boolean) => {\n onUpdate(id, { maskClosable: value });\n };\n const contextValue: ModalContextValue = { close, setCanDismissByClickOutside };\n const openKey = options?.openKey ?? 'open';\n const onCloseKey = options?.onCloseKey ?? 'onClose';\n const injectedProps = {\n ...props,\n [onCloseKey]: close,\n [openKey]: open,\n };\n\n return (\n <ModalProvider value={contextValue}>\n <Component {...injectedProps} />\n </ModalProvider>\n );\n },\n);\n\nRawModalStackItem.displayName = 'RawModalStackItem';\n"],"mappings":";;;;;;;AAkBA,MAAa,oBAAoB,MAC9B,EACC,WAAW,WACX,IACA,SACA,UACA,MACA,SACA,YAC4B;CAC5B,MAAM,cAAc,QAAQ,GAAG;CAC/B,MAAM,+BAA+B,UAAmB;AACtD,WAAS,IAAI,EAAE,cAAc,OAAO,CAAC;;CAEvC,MAAMA,eAAkC;EAAE;EAAO;EAA6B;CAC9E,MAAM,UAAU,SAAS,WAAW;CACpC,MAAM,aAAa,SAAS,cAAc;AAO1C,QACE,oBAAC;EAAc,OAAO;YACpB,oBAAC;GAPH,GAAG;IACF,aAAa;IACb,UAAU;IAKuB;GAClB;EAGrB;AAED,kBAAkB,cAAc"}