UNPKG

@primer/react

Version:

An implementation of GitHub's Primer Design System using React

111 lines (110 loc) 3.47 kB
import { Dialog } from "../Dialog/Dialog.js"; import { c } from "react-compiler-runtime"; import { jsx } from "react/jsx-runtime"; import "react"; //#region src/ConfirmationDialog/ConfirmationDialog.tsx /** * Props to customize the ConfirmationDialog. */ /** * A ConfirmationDialog is a special kind of dialog with more rigid behavior. It * is used to confirm a user action. ConfirmationDialogs always have exactly * two buttons: one to cancel the action and one to confirm it. No custom * rendering capabilities are provided for ConfirmationDialog. */ const ConfirmationDialog = (props) => { const $ = c(26); const { onClose, title, cancelButtonContent: t0, confirmButtonContent: t1, confirmButtonType: t2, cancelButtonLoading: t3, confirmButtonLoading: t4, children, className, width: t5, height, overrideButtonFocus } = props; const cancelButtonContent = t0 === void 0 ? "Cancel" : t0; const confirmButtonContent = t1 === void 0 ? "OK" : t1; const confirmButtonType = t2 === void 0 ? "normal" : t2; const cancelButtonLoading = t3 === void 0 ? false : t3; const confirmButtonLoading = t4 === void 0 ? false : t4; const width = t5 === void 0 ? "medium" : t5; let t6; if ($[0] !== onClose) { t6 = () => { onClose("cancel"); }; $[0] = onClose; $[1] = t6; } else t6 = $[1]; const onCancelButtonClick = t6; let t7; if ($[2] !== onClose) { t7 = () => { onClose("confirm"); }; $[2] = onClose; $[3] = t7; } else t7 = $[3]; const onConfirmButtonClick = t7; const buttonToFocus = overrideButtonFocus !== void 0 ? overrideButtonFocus : confirmButtonType === "danger" ? "cancel" : "confirm"; const t8 = buttonToFocus === "cancel"; let t9; if ($[4] !== cancelButtonContent || $[5] !== cancelButtonLoading || $[6] !== onCancelButtonClick || $[7] !== t8) { t9 = { content: cancelButtonContent, onClick: onCancelButtonClick, autoFocus: t8, loading: cancelButtonLoading }; $[4] = cancelButtonContent; $[5] = cancelButtonLoading; $[6] = onCancelButtonClick; $[7] = t8; $[8] = t9; } else t9 = $[8]; const cancelButton = t9; const t10 = buttonToFocus === "confirm"; let t11; if ($[9] !== confirmButtonContent || $[10] !== confirmButtonLoading || $[11] !== confirmButtonType || $[12] !== onConfirmButtonClick || $[13] !== t10) { t11 = { content: confirmButtonContent, buttonType: confirmButtonType, onClick: onConfirmButtonClick, autoFocus: t10, loading: confirmButtonLoading }; $[9] = confirmButtonContent; $[10] = confirmButtonLoading; $[11] = confirmButtonType; $[12] = onConfirmButtonClick; $[13] = t10; $[14] = t11; } else t11 = $[14]; const confirmButton = t11; let t12; if ($[15] !== cancelButton || $[16] !== confirmButton) { t12 = [cancelButton, confirmButton]; $[15] = cancelButton; $[16] = confirmButton; $[17] = t12; } else t12 = $[17]; const footerButtons = t12; let t13; if ($[18] !== children || $[19] !== className || $[20] !== footerButtons || $[21] !== height || $[22] !== onClose || $[23] !== title || $[24] !== width) { t13 = /*#__PURE__*/ jsx(Dialog, { "data-component": "ConfirmationDialog", onClose, title, footerButtons, role: "alertdialog", width, height, className, children }); $[18] = children; $[19] = className; $[20] = footerButtons; $[21] = height; $[22] = onClose; $[23] = title; $[24] = width; $[25] = t13; } else t13 = $[25]; return t13; }; //#endregion export { ConfirmationDialog };