UNPKG

@keycloakify/keycloak-admin-ui

Version:
27 lines 1.74 kB
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import { useState } from "react"; import { Button, ButtonVariant, Modal, ModalVariant, } from "@patternfly/react-core"; import { useTranslation } from "react-i18next"; export const useConfirmDialog = (props) => { const [show, setShow] = useState(false); function toggleDialog() { setShow((show) => !show); } const Dialog = () => (_jsx(ConfirmDialogModal, { ...props, open: show, toggleDialog: toggleDialog }, "confirmDialog")); return [toggleDialog, Dialog]; }; export const ConfirmDialogModal = ({ titleKey, messageKey, noCancelButton, cancelButtonLabel, continueButtonLabel, continueButtonVariant, onConfirm, onCancel, children, open = true, variant = ModalVariant.small, toggleDialog, confirmButtonDisabled, }) => { const { t } = useTranslation(); return (_jsxs(Modal, { title: t(titleKey), isOpen: open, onClose: toggleDialog, variant: variant, actions: [ _jsx(Button, { id: "modal-confirm", "data-testid": "confirm", isDisabled: confirmButtonDisabled, variant: continueButtonVariant || ButtonVariant.primary, onClick: () => { onConfirm(); toggleDialog(); }, children: t(continueButtonLabel || "continue") }, "confirm"), !noCancelButton && (_jsx(Button, { id: "modal-cancel", "data-testid": "cancel", variant: ButtonVariant.link, onClick: () => { if (onCancel) onCancel(); toggleDialog(); }, children: t(cancelButtonLabel || "cancel") }, "cancel")), ], children: [!messageKey && children, messageKey && t(messageKey)] })); }; //# sourceMappingURL=ConfirmDialog.js.map