@instructure/quiz-taking
Version:
52 lines (51 loc) • 2.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.mapStateToProps = exports.mapDispatchToProps = exports.getPinnedItems = exports["default"] = exports.TakingSidebar = void 0;
var _redux = require("redux");
var _immutable = require("immutable");
var _quizCore = require("@instructure/quiz-core");
var _presenter = require("./presenter");
var getPinnedItems = exports.getPinnedItems = function getPinnedItems(state, quizSession) {
if (state.getIn(['sessionItems'], (0, _immutable.Map)()).size === 0) {
return (0, _immutable.List)();
}
return quizSession.getIn(['takingData', 'pins'], (0, _immutable.List)()).map(function (pinPosition) {
var si = state.get('sessionItems').find(function (sessionItem) {
return sessionItem.get('position') === pinPosition;
});
return {
position: pinPosition,
sessionItemId: si.get('id')
};
});
};
var mapStateToProps = exports.mapStateToProps = function mapStateToProps(state, props) {
var quizSession = (0, _quizCore.getActiveQuizSession)(state);
var pinnedItems = getPinnedItems(state, quizSession);
return {
allowBacktracking: (0, _quizCore.getBacktrackingIsAllowed)(state),
isOneQuestionAtATime: (0, _quizCore.isOneQuestionAtATime)(state),
pinnedItems: pinnedItems,
quizTitle: quizSession.getQuiz().title,
sessionItems: quizSession.getSessionItems(),
sessionNotLoaded: quizSession.id === '0',
sidebarOpen: props.sidebarOpen || state.getIn(['sidebar', 'isOpen'])
};
};
var mapDispatchToProps = exports.mapDispatchToProps = function mapDispatchToProps(dispatch, props) {
return {
scrollToItem: props.scrollToItem || (0, _redux.bindActionCreators)(_quizCore.scrollToItem, dispatch),
toggleSidebar: props.toggleSidebar || (0, _redux.bindActionCreators)(_quizCore.toggleSidebar, dispatch),
screenreaderNotification: (0, _redux.bindActionCreators)(_quizCore.screenreaderNotification, dispatch),
goToItem: function goToItem(sessionItemPosition) {
return (0, _redux.bindActionCreators)(_quizCore.setCurrentSessionItemPosition, dispatch)(sessionItemPosition);
},
setFocusTitleAndInstructions: function setFocusTitleAndInstructions(bool) {
return (0, _redux.bindActionCreators)(_quizCore.setFocusTitleAndInstructions, dispatch)(bool);
}
};
};
var TakingSidebar = exports.TakingSidebar = (0, _quizCore.connect)(mapStateToProps, mapDispatchToProps)(_presenter.TakingSidebar);
var _default = exports["default"] = TakingSidebar;