UNPKG

modaq

Version:

Quiz Bowl Reader using TypeScript, React, and MobX

43 lines 2.76 kB
"use strict"; 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