@mantine/modals
Version: 
Modals manager based on Mantine components
1 lines • 2.81 kB
Source Map (JSON)
{"version":3,"file":"context.mjs","sources":["../src/context.ts"],"sourcesContent":["import { createContext, ReactNode } from 'react';\nimport { ModalProps } from '@mantine/core';\nimport type { ConfirmModalProps } from './ConfirmModal';\n\nexport type ModalSettings = Partial<Omit<ModalProps, 'opened'>> & { modalId?: string };\n\nexport type ConfirmLabels = Record<'confirm' | 'cancel', ReactNode>;\n\nexport interface OpenConfirmModal extends ModalSettings, ConfirmModalProps {}\nexport interface OpenContextModal<CustomProps extends Record<string, any> = {}>\n  extends ModalSettings {\n  innerProps: CustomProps;\n}\n\nexport interface ContextModalProps<T extends Record<string, any> = {}> {\n  context: ModalsContextProps;\n  innerProps: T;\n  id: string;\n}\n\nexport type ModalState =\n  | { id: string; props: ModalSettings; type: 'content' }\n  | { id: string; props: OpenConfirmModal; type: 'confirm' }\n  | { id: string; props: OpenContextModal; type: 'context'; ctx: string };\n\nexport interface ModalsContextProps {\n  modalProps: ModalSettings;\n  modals: ModalState[];\n  openModal: (props: ModalSettings) => string;\n  openConfirmModal: (props: OpenConfirmModal) => string;\n  openContextModal: <TKey extends MantineModal>(\n    modal: TKey,\n    props: OpenContextModal<Parameters<MantineModals[TKey]>[0]['innerProps']>\n  ) => string;\n  closeModal: (id: string, canceled?: boolean) => void;\n  closeContextModal: <TKey extends MantineModal>(id: TKey, canceled?: boolean) => void;\n  closeAll: () => void;\n  updateModal: (payload: { modalId: string } & Partial<OpenConfirmModal>) => void;\n  updateContextModal: (payload: { modalId: string } & Partial<OpenContextModal<any>>) => void;\n}\n\nexport interface MantineModalsOverride {}\n\nexport type MantineModalsOverwritten = MantineModalsOverride extends {\n  modals: Record<string, React.FC<ContextModalProps<any>>>;\n}\n  ? MantineModalsOverride\n  : {\n      modals: Record<string, React.FC<ContextModalProps<any>>>;\n    };\n\nexport type MantineModals = MantineModalsOverwritten['modals'];\n\nexport type MantineModal = keyof MantineModals;\n\nexport const ModalsContext = createContext<ModalsContextProps>(null as any);\nModalsContext.displayName = '@mantine/modals/ModalsContext';\n"],"names":[],"mappings":";;;AAuDO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAkC,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA;AAC1E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;"}