@instructure/quiz-interactions
Version:
A React UI component Library for quiz interaction types.
82 lines (81 loc) • 2.84 kB
JavaScript
function _define_property(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
function _object_spread(target) {
for(var i = 1; i < arguments.length; i++){
var source = arguments[i] != null ? arguments[i] : {};
var ownKeys = Object.keys(source);
if (typeof Object.getOwnPropertySymbols === "function") {
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
}));
}
ownKeys.forEach(function(key) {
_define_property(target, key, source[key]);
});
}
return target;
}
var generateStyle = function(componentTheme, props) {
var getStatus = function() {
var resultScore = (props.scoredData.value || {}).resultScore;
if (resultScore === 1) {
return 'correct';
} else if (resultScore <= 0) {
return 'incorrect';
}
return 'unknown';
};
var userResponseWrapperVariants = {
correct: {
border: "".concat(componentTheme.wrapperBorderWidth, " solid ").concat(componentTheme.correctColor)
},
incorrect: {
border: "".concat(componentTheme.wrapperBorderWidth, " solid ").concat(componentTheme.incorrectColor)
},
unknown: {
border: "".concat(componentTheme.wrapperBorderWidth, " solid ").concat(componentTheme.unknownColor)
}
};
var userResponseTargetVariants = {
correct: {
backgroundColor: componentTheme.correctColor
},
incorrect: {
backgroundColor: componentTheme.incorrectColor
},
unknown: {
backgroundColor: componentTheme.unknownColor
}
};
return {
userResponseWrapper: _object_spread({
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
borderRadius: '50%',
boxShadow: "0 0 0 1px ".concat(componentTheme.userResponseShadowColor),
width: '1.2rem',
height: '1.2rem',
/* This is done to center the bullseye */ position: 'absolute',
transform: 'translate(-50%, -50%)'
}, userResponseWrapperVariants[getStatus()]),
userResponseTarget: _object_spread({
borderRadius: '50%',
boxShadow: "0 0 0 1px ".concat(componentTheme.userResponseShadowColor),
width: '0.5rem',
height: '0.5rem'
}, userResponseTargetVariants[getStatus()])
};
};
export default generateStyle;