UNPKG

@mantine/modals

Version:

Modals manager based on Mantine components

1 lines 2.96 kB
{"version":3,"file":"ConfirmModal.cjs","names":["useModals","Box","Group","Button"],"sources":["../src/ConfirmModal.tsx"],"sourcesContent":["import { Box, Button, ButtonProps, Group, GroupProps } from '@mantine/core';\nimport { ConfirmLabels } from './context';\nimport { useModals } from './use-modals/use-modals';\n\nexport interface ConfirmModalProps {\n id?: string;\n children?: React.ReactNode;\n onCancel?: () => void;\n onConfirm?: () => void;\n closeOnConfirm?: boolean;\n closeOnCancel?: boolean;\n cancelProps?: ButtonProps & React.ComponentProps<'button'> & Record<`data-${string}`, any>;\n confirmProps?: ButtonProps & React.ComponentProps<'button'> & Record<`data-${string}`, any>;\n groupProps?: GroupProps;\n labels?: ConfirmLabels;\n}\n\nexport function ConfirmModal({\n id,\n cancelProps,\n confirmProps,\n labels = { cancel: '', confirm: '' },\n closeOnConfirm = true,\n closeOnCancel = true,\n groupProps,\n onCancel,\n onConfirm,\n children,\n}: ConfirmModalProps) {\n const { cancel: cancelLabel, confirm: confirmLabel } = labels;\n const ctx = useModals();\n\n const handleCancel = (event: React.MouseEvent<HTMLButtonElement>) => {\n typeof cancelProps?.onClick === 'function' && cancelProps?.onClick(event);\n typeof onCancel === 'function' && onCancel();\n closeOnCancel && ctx.closeModal(id!);\n };\n\n const handleConfirm = (event: React.MouseEvent<HTMLButtonElement>) => {\n typeof confirmProps?.onClick === 'function' && confirmProps?.onClick(event);\n typeof onConfirm === 'function' && onConfirm();\n closeOnConfirm && ctx.closeModal(id!);\n };\n\n return (\n <>\n {children && <Box mb=\"md\">{children}</Box>}\n\n <Group mt={children ? 0 : 'md'} justify=\"flex-end\" {...groupProps}>\n <Button variant=\"default\" {...cancelProps} onClick={handleCancel}>\n {cancelProps?.children || cancelLabel}\n </Button>\n\n <Button {...confirmProps} onClick={handleConfirm}>\n {confirmProps?.children || confirmLabel}\n </Button>\n </Group>\n </>\n );\n}\n"],"mappings":";;;;;AAiBA,SAAgB,aAAa,EAC3B,IACA,aACA,cACA,SAAS;CAAE,QAAQ;CAAI,SAAS;AAAG,GACnC,iBAAiB,MACjB,gBAAgB,MAChB,YACA,UACA,WACA,YACoB;CACpB,MAAM,EAAE,QAAQ,aAAa,SAAS,iBAAiB;CACvD,MAAM,MAAMA,mBAAAA,UAAU;CAEtB,MAAM,gBAAgB,UAA+C;EACnE,OAAO,aAAa,YAAY,cAAc,aAAa,QAAQ,KAAK;EACxE,OAAO,aAAa,cAAc,SAAS;EAC3C,iBAAiB,IAAI,WAAW,EAAG;CACrC;CAEA,MAAM,iBAAiB,UAA+C;EACpE,OAAO,cAAc,YAAY,cAAc,cAAc,QAAQ,KAAK;EAC1E,OAAO,cAAc,cAAc,UAAU;EAC7C,kBAAkB,IAAI,WAAW,EAAG;CACtC;CAEA,OACE,iBAAA,GAAA,kBAAA,MAAA,kBAAA,UAAA,EAAA,UAAA,CACG,YAAY,iBAAA,GAAA,kBAAA,KAACC,cAAAA,KAAD;EAAK,IAAG;EAAM;CAAc,CAAA,GAEzC,iBAAA,GAAA,kBAAA,MAACC,cAAAA,OAAD;EAAO,IAAI,WAAW,IAAI;EAAM,SAAQ;EAAW,GAAI;YAAvD,CACE,iBAAA,GAAA,kBAAA,KAACC,cAAAA,QAAD;GAAQ,SAAQ;GAAU,GAAI;GAAa,SAAS;aACjD,aAAa,YAAY;EACpB,CAAA,GAER,iBAAA,GAAA,kBAAA,KAACA,cAAAA,QAAD;GAAQ,GAAI;GAAc,SAAS;aAChC,cAAc,YAAY;EACrB,CAAA,CACH;GACP,EAAA,CAAA;AAEN"}