modaq
Version:
Quiz Bowl Reader using TypeScript, React, and MobX
43 lines • 2.76 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.MessageDialog = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const react_1 = __importDefault(require("react"));
const mobx_react_lite_1 = require("mobx-react-lite");
const react_2 = require("@fluentui/react");
require("../../state/AppState");
const StateContext_1 = require("../../contexts/StateContext");
const IMessageDialogState_1 = require("../../state/IMessageDialogState");
const ModalVisibilityStatus_1 = require("../../state/ModalVisibilityStatus");
const ModalDialog_1 = require("./ModalDialog");
exports.MessageDialog = mobx_react_lite_1.observer(function MessageDialog() {
const appState = react_1.default.useContext(StateContext_1.StateContext);
const closeHandler = react_1.default.useCallback(() => hideDialog(appState), [appState]);
const messageDialog = appState.uiState.dialogState.messageDialog;
if (messageDialog == undefined) {
return jsx_runtime_1.jsx(jsx_runtime_1.Fragment, {}, void 0);
}
const okHandler = () => {
if (messageDialog.onOK !== undefined) {
messageDialog.onOK();
}
hideDialog(appState);
};
const noButton = messageDialog.type === IMessageDialogState_1.MessageDialogType.YesNocCancel ? (jsx_runtime_1.jsx(react_2.DefaultButton, { text: "No", onClick: () => {
if (messageDialog.onNo !== undefined) {
messageDialog.onNo();
}
hideDialog(appState);
} }, void 0)) : undefined;
const cancelButton = messageDialog.type === IMessageDialogState_1.MessageDialogType.OK ? undefined : (jsx_runtime_1.jsx(react_2.DefaultButton, { text: "Cancel", onClick: closeHandler }, void 0));
const okButtonText = messageDialog.type === IMessageDialogState_1.MessageDialogType.YesNocCancel ? "Yes" : "OK";
return (jsx_runtime_1.jsxs(ModalDialog_1.ModalDialog, Object.assign({ title: messageDialog.title, visibilityStatus: ModalVisibilityStatus_1.ModalVisibilityStatus.Message, maxWidth: "30vw", onDismiss: closeHandler }, { children: [jsx_runtime_1.jsx(react_2.Label, { children: messageDialog === null || messageDialog === void 0 ? void 0 : messageDialog.message }, void 0),
jsx_runtime_1.jsxs(react_2.DialogFooter, { children: [jsx_runtime_1.jsx(react_2.PrimaryButton, { text: okButtonText, onClick: okHandler }, void 0), noButton, cancelButton] }, void 0)] }), void 0));
});
function hideDialog(appState) {
appState.uiState.dialogState.hideMessageDialog();
}
//# sourceMappingURL=MessageDialog.js.map