quiz-interactions
Version:
A React UI component Library for quiz interaction types.
150 lines (122 loc) • 6.09 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
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 _uiThemeable = require("@instructure/ui-themeable");
var _quizRce = require("@instructure/quiz-rce");
var _ChoiceBody = _interopRequireDefault(require("../components/ChoiceBody"));
var _theme = _interopRequireDefault(require("./theme"));
var _dec, _class, _class2, _temp;
var styles = {
componentId: 'dEuUZ',
template: function template(theme) {
return "\n\n.dEuUZ_cSuF{border:".concat(theme.questionBorderWidth || 'inherit', " solid ").concat(theme.questionBorderColor || 'inherit', ";border-radius:").concat(theme.questionBorderRadius || 'inherit', ";box-sizing:border-box;cursor:pointer;padding:").concat(theme.questionPaddingTop || 'inherit', " ").concat(theme.questionPaddingSides || 'inherit', " ").concat(theme.questionPaddingBottom || 'inherit', " ").concat(theme.questionPaddingSides || 'inherit', ";width:100%}\n\n.dEuUZ_fsuY{display:flex;flex-direction:column}\n\n.dEuUZ_VpyP{align-items:center;display:flex;flex-direction:row;margin-bottom:").concat(theme.headerSectionMargin || 'inherit', "}\n\n.dEuUZ_nvdO{color:").concat(theme.titleColor || 'inherit', ";flex:20 20 auto;font-size:").concat(theme.titleFontSize || 'inherit', ";margin:0;margin-left:").concat(theme.titleMargin || 'inherit', "}\n\n.dEuUZ_eEHL{flex:1 1 auto}\n\n.dEuUZ_esVF{margin-left:").concat(theme.itemBodyMargin || 'inherit', "}\n\n.dEuUZ_tuUw{align-items:center;color:").concat(theme.questionPositionColor || 'inherit', ";flex:1 1 0;font-size:").concat(theme.questionPositionFont || 'inherit', "}\n\n.dEuUZ_cwte{display:flex;flex:2 2 auto;justify-content:flex-end;padding-right:").concat(theme.pointsPadding || 'inherit', "}\n\n.dEuUZ_cwte,.dEuUZ_cloC{align-items:center}\n\n.dEuUZ_cloC{flex:20 20 auto;font-size:").concat(theme.stemFontSize || 'inherit', ";margin:0}\n\n.dEuUZ_fVUh{border:none}\n\n.dEuUZ_dKma{margin:0}\n\n.dEuUZ_dKma,.dEuUZ_bcGJ{background-color:transparent;border:default;border-radius:default;border-width:default;padding:0}\n\n.dEuUZ_bcGJ{margin-right:").concat(theme.editButtonMargin || 'inherit', "}");
},
'question': 'dEuUZ_cSuF',
'header': 'dEuUZ_fsuY',
'headerSection': 'dEuUZ_VpyP',
'title': 'dEuUZ_nvdO',
'dragAndDrop': 'dEuUZ_eEHL',
'itemBody': 'dEuUZ_esVF',
'questionPosition': 'dEuUZ_tuUw',
'points': 'dEuUZ_cwte',
'stem': 'dEuUZ_cloC',
'legend': 'dEuUZ_fVUh',
'deleteButton': 'dEuUZ_dKma',
'editButton': 'dEuUZ_bcGJ'
};
var TrueFalseTake = (
/**
---
category: TrueFalse
---
True False Take component
```jsx_example
function Example (props) {
const exampleProps = {
itemBody: 'The sun is a star',
interactionData: {
trueChoice: 'True',
falseChoice: 'False'
},
userResponse: {}
}
return (
<TrueFalseTake {...exampleProps} {...props} />
)
}
<SettingsSwitcher locales={LOCALES}>
<TakeStateProvider>
<Example />
</TakeStateProvider>
</SettingsSwitcher>
```
**/
_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 =
/*#__PURE__*/
function (_Component) {
(0, _inherits2.default)(TrueFalseTake, _Component);
function TrueFalseTake() {
var _getPrototypeOf2;
var _this;
(0, _classCallCheck2.default)(this, TrueFalseTake);
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)(TrueFalseTake)).call.apply(_getPrototypeOf2, [this].concat(args)));
_this.handleSelectionUpdate = function (event, response) {
_this.props.handleResponseUpdate(response === 'trueChoice');
};
return _this;
}
(0, _createClass2.default)(TrueFalseTake, [{
key: "chosenVal",
value: function chosenVal() {
var userResponse = this.props.userResponse;
if (userResponse && userResponse.value !== void 0) {
return userResponse.value ? 'trueChoice' : 'falseChoice';
}
}
}, {
key: "render",
value: function render() {
return _react.default.createElement(_quizRce.ItemBodyWrapper, {
itemBody: this.props.itemBody
}, _react.default.createElement(_ChoiceBody.default, {
selectedValue: this.chosenVal(),
falseChoiceLabel: this.props.interactionData.falseChoice,
name: "interaction_".concat(this.props.itemId) // eslint-disable-line react/jsx-no-literals
,
onSelectionUpdate: this.handleSelectionUpdate,
trueChoiceLabel: this.props.interactionData.trueChoice
}));
}
}]);
TrueFalseTake.displayName = "TrueFalseTake";
return TrueFalseTake;
}(_react.Component), _class2.propTypes = {
handleResponseUpdate: _propTypes.default.func.isRequired,
itemBody: _propTypes.default.string.isRequired,
interactionData: _propTypes.default.shape({
trueChoice: _propTypes.default.string,
falseChoice: _propTypes.default.string
}).isRequired,
userResponse: _propTypes.default.shape({
value: _propTypes.default.bool
}),
itemId: _propTypes.default.string
}, _class2.defaultProps = {
userResponse: void 0,
itemId: void 0
}, _temp)) || _class);
exports.default = TrueFalseTake;