quiz-interactions
Version:
A React UI component Library for quiz interaction types.
135 lines (106 loc) • 4.09 kB
JavaScript
"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
};