@keycloakify/keycloak-admin-ui
Version:
Repackaged Keycloak Admin UI
27 lines • 1.74 kB
JavaScript
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