UNPKG

quiz-interactions

Version:

A React UI component Library for quiz interaction types.

135 lines (106 loc) 4.09 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _quizI18n = require("@instructure/quiz-i18n"); var _uiLayout = require("@instructure/ui-layout"); var _quizNumberInput = require("@instructure/quiz-number-input"); var _NumericTypeSelect = _interopRequireDefault(require("./NumericTypeSelect")); var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/lib/format-message")); var _constants = require("./constants"); var ExactResponse = /*#__PURE__*/ function (_Component) { (0, _inherits2.default)(ExactResponse, _Component); function ExactResponse() { var _getPrototypeOf2; var _this; (0, _classCallCheck2.default)(this, ExactResponse); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(ExactResponse)).call.apply(_getPrototypeOf2, [this].concat(args))); _this.state = { value: '' }; _this.handleValueChange = function (event, value, normalized) { _this.setState({ value: value }); _this.props.onChange(event, { id: _this.props.id, value: normalized }); }; return _this; } (0, _createClass2.default)(ExactResponse, [{ key: "componentWillMount", value: function componentWillMount() { if (this.props.value) { var value; try { value = _quizI18n.Decimal.toLocaleString(this.props.value, this.props.locale); } catch (e) { value = this.props.value; } this.setState({ value: value }); } } }, { key: "render", value: function render() { return _react.default.createElement(_uiLayout.Flex, { alignItems: "start" }, _react.default.createElement(_uiLayout.Flex.Item, { grow: true, shrink: true, margin: "0 xx-small" }, _react.default.createElement(_NumericTypeSelect.default, { id: this.props.id, onChange: this.props.onChangeType, onClickHelp: this.props.onClickHelp, value: _constants.EXACT_RESPONSE })), _react.default.createElement(_uiLayout.Flex.Item, { grow: true, shrink: true, margin: "0 xx-small" }, _react.default.createElement(_quizNumberInput.ScientificNumberInput, { label: (0, _formatMessage.default)('Answer'), locale: this.props.locale, messages: this.props.messages.value, value: this.state.value, onChange: this.handleValueChange }))); } }]); ExactResponse.displayName = "ExactResponse"; return ExactResponse; }(_react.Component); exports.default = ExactResponse; ExactResponse.propTypes = { id: _propTypes.default.string.isRequired, locale: _propTypes.default.string.isRequired, messages: _propTypes.default.objectOf(_propTypes.default.array), onChange: _propTypes.default.func.isRequired, onChangeType: _propTypes.default.func.isRequired, onClickHelp: _propTypes.default.func, value: _propTypes.default.string }; ExactResponse.defaultProps = { messages: {}, onClickHelp: null, value: void 0 };