@primer/react
Version:
An implementation of GitHub's Primer Design System using React
111 lines (110 loc) • 3.47 kB
JavaScript
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 };