UNPKG

@instructure/quiz-taking

Version:

52 lines (51 loc) 2.51 kB
"use strict"; 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;