| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- import { useTranslation } from 'react-i18next'
- import { memo } from 'react'
- import OLModal, {
- OLModalBody,
- OLModalFooter,
- OLModalHeader,
- OLModalTitle,
- } from '@/features/ui/components/ol/ol-modal'
- import OLButton from '@/features/ui/components/ol/ol-button'
- import { ButtonProps } from '@/features/ui/components/types/button-props'
- export type GenericConfirmModalOwnProps = {
- title: string
- message: string
- onConfirm: () => void
- confirmLabel?: string
- primaryVariant?: ButtonProps['variant']
- }
- type GenericConfirmModalProps = React.ComponentProps<typeof OLModal> &
- GenericConfirmModalOwnProps
- function GenericConfirmModal({
- title,
- message,
- confirmLabel,
- primaryVariant = 'primary',
- onConfirm,
- ...modalProps
- }: GenericConfirmModalProps) {
- const { t } = useTranslation()
- return (
- <OLModal {...modalProps}>
- <OLModalHeader closeButton>
- <OLModalTitle>{title}</OLModalTitle>
- </OLModalHeader>
- <OLModalBody className="modal-generic-confirm">{message}</OLModalBody>
- <OLModalFooter>
- <OLButton variant="secondary" onClick={() => modalProps.onHide()}>
- {t('cancel')}
- </OLButton>
- <OLButton variant={primaryVariant} onClick={onConfirm}>
- {confirmLabel || t('ok')}
- </OLButton>
- </OLModalFooter>
- </OLModal>
- )
- }
- export default memo(GenericConfirmModal)
|