quiz-interactions
Version:
A React UI component Library for quiz interaction types.
170 lines (156 loc) • 4.93 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _reactDnd = require("react-dnd");
var _reactDndHtml5Backend = _interopRequireDefault(require("react-dnd-html5-backend"));
var _index = _interopRequireDefault(require("./index"));
var scoredDataFromBlank = function scoredDataFromBlank(blank, correctAnswer) {
if (blank.answerType === 'openEntry') {
return {
resultScore: correctAnswer === 'one',
// fitb result component should respect/display whitespace between words
userResponse: 'one word ʃ̬',
correctAnswer: correctAnswer
};
}
if (correctAnswer === 'one') {
var _value;
return {
value: (_value = {}, (0, _defineProperty2.default)(_value, blank.choices[0].id, {
resultScore: 1,
userResponded: true
}), (0, _defineProperty2.default)(_value, blank.choices[1].id, {
resultScore: 0,
userResponded: false
}), (0, _defineProperty2.default)(_value, blank.choices[2].id, {
resultScore: 0,
userResponded: false
}), _value)
};
} else if (correctAnswer === 'one or two') {
var _value2;
return {
value: (_value2 = {}, (0, _defineProperty2.default)(_value2, blank.choices[0].id, {
resultScore: 1,
userResponded: false
}), (0, _defineProperty2.default)(_value2, blank.choices[1].id, {
resultScore: 1,
userResponded: true
}), (0, _defineProperty2.default)(_value2, blank.choices[2].id, {
resultScore: 0,
userResponded: false
}), _value2)
};
} else if (correctAnswer === 'three') {
var _value3;
return {
value: (_value3 = {}, (0, _defineProperty2.default)(_value3, blank.choices[0].id, {
resultScore: 0,
userResponded: true
}), (0, _defineProperty2.default)(_value3, blank.choices[1].id, {
resultScore: 0,
userResponded: false
}), (0, _defineProperty2.default)(_value3, blank.choices[2].id, {
resultScore: 1,
userResponded: false
}), _value3)
};
} else if (correctAnswer === 'no scores') {
var _value4;
return {
value: (_value4 = {}, (0, _defineProperty2.default)(_value4, blank.choices[0].id, {
userResponded: false
}), (0, _defineProperty2.default)(_value4, blank.choices[1].id, {
userResponded: true
}), (0, _defineProperty2.default)(_value4, blank.choices[2].id, {
userResponded: false
}), _value4)
};
} else if (correctAnswer === 'no responses') {
var _value5;
return {
value: (_value5 = {}, (0, _defineProperty2.default)(_value5, blank.choices[0].id, {
resultScore: 0
}), (0, _defineProperty2.default)(_value5, blank.choices[1].id, {
resultScore: 0
}), (0, _defineProperty2.default)(_value5, blank.choices[2].id, {
resultScore: 0
}), _value5)
};
} else {
return {
value: {}
};
}
};
var _default = {
component: (0, _reactDnd.DragDropContext)(_reactDndHtml5Backend.default)(_index.default),
propValues: {
blank: [{
id: 'fitb_uuid1',
answerType: 'openEntry'
}, {
id: 'fitb_uuid1',
answerType: 'wordbank',
choices: [{
id: 'choice_uuid1',
position: 1,
itemBody: 'one'
}, {
id: 'choice_uuid2',
position: 2,
itemBody: 'two'
}, {
id: 'choice_uuid3',
position: 3,
itemBody: 'three'
}]
}, {
id: 'fitb_uuid1',
answerType: 'dropdown',
choices: [{
id: 'choice_uuid1',
position: 1,
itemBody: 'one'
}, {
id: 'choice_uuid2',
position: 2,
itemBody: 'two'
}, {
id: 'choice_uuid3',
position: 3,
itemBody: 'three'
}]
}],
correctAnswer: ['one', 'one or two', 'three', 'no scores', 'no responses', 'responses hidden']
},
getComponentProps: function getComponentProps(props) {
return {
interactionData: {
prompt: "<p><strong>Please</strong> fill in all the blanks (".concat(props.blank.answerType, ", ").concat(props.correctAnswer, ")</p>"),
stemItems: [{
id: 'stem_uuid0',
position: 1,
type: 'text',
value: 'Write a number word here: '
}, {
id: 'stem_uuid1',
position: 2,
type: 'blank',
blankId: 'fitb_uuid1'
}],
blanks: [props.blank]
},
scoredData: {
value: props.correctAnswer === 'responses hidden' ? null : {
fitb_uuid1: scoredDataFromBlank(props.blank, props.correctAnswer)
}
}
};
}
};
exports.default = _default;