UNPKG

modaq

Version:

Quiz Bowl Reader using TypeScript, React, and MobX

44 lines 2.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RoundSelector = void 0; const jsx_runtime_1 = require("react/jsx-runtime"); require("react"); const mobx_react_lite_1 = require("mobx-react-lite"); const react_1 = require("@fluentui/react"); const defaultMaximumRoundNumber = 30; exports.RoundSelector = mobx_react_lite_1.observer(function RoundSelector(props) { var _a, _b; const maximumRoundNumber = (_a = props.maximumRoundNumber) !== null && _a !== void 0 ? _a : defaultMaximumRoundNumber; return (jsx_runtime_1.jsx(react_1.SpinButton, { label: "Round Number", onIncrement: (newValue) => roundNumberIncrementHandler(props, maximumRoundNumber, newValue), onDecrement: (newValue) => roundNumberDecrementHandler(props, newValue), onValidate: (newValue) => roundNumberChangeHandler(props, maximumRoundNumber, newValue), disabled: props.disabled, value: props.roundNumber.toString(), min: 1, max: (_b = props.maximumRoundNumber) !== null && _b !== void 0 ? _b : defaultMaximumRoundNumber, step: 1, incrementButtonAriaLabel: "Increase round number by 1", decrementButtonAriaLabel: "Decrease round number by 1" }, void 0)); }); function roundNumberChangeHandler(props, maximumRoundNumber, newValue) { if (newValue == undefined) { return; } const roundNumber = parseInt(newValue, 10); if (isNaN(roundNumber) || roundNumber < 1 || roundNumber > maximumRoundNumber) { // Don't accept the input if it's not a number return; } props.onRoundNumberChange(roundNumber); return roundNumber.toString(); } function roundNumberDecrementHandler(props, newValue) { const roundNumber = parseInt(newValue, 10); if (isNaN(roundNumber) || roundNumber <= 1) { return; } const newRoundNumber = roundNumber - 1; props.onRoundNumberChange(newRoundNumber); return newRoundNumber.toString(); } function roundNumberIncrementHandler(props, maximumRoundNumber, newValue) { const roundNumber = parseInt(newValue, 10); if (isNaN(roundNumber) || roundNumber >= maximumRoundNumber) { return; } const newRoundNumber = roundNumber + 1; props.onRoundNumberChange(newRoundNumber); return newRoundNumber.toString(); } //# sourceMappingURL=RoundSelector.js.map