UNPKG

@instructure/quiz-grading

Version:

The Quiz React SDK by Instructure Inc.

44 lines (43 loc) 2.15 kB
import { compose } from 'redux'; import { Map } from 'immutable'; import SessionItemResultWrapperPresenter from './presenter'; import { connect } from '@instructure/quiz-core/common/react-redux'; import { makeEditable } from '@instructure/quiz-core/common/components/shared/functionality/makeEditable'; import { makeScrollable } from '@instructure/quiz-core/common/components/shared/functionality/makeScrollable'; import { setActiveItem } from '@instructure/quiz-core/common/actions/grading'; import { toggleRegradingEditMode } from '@instructure/quiz-core/common/actions/regrading'; import { getActiveQuiz } from '@instructure/quiz-core/common/selectors/quizzes'; // for Redux caching var emptyMap = Map(); function mapStateToProps(state, props) { var sessionItemResult = props.sessionItem.sessionItemResult; var workingSessionItemResult = sessionItemResult.getWorkingInstance(); var modifications = state.modifications.getIn([ 'sessionItemResults', props.sessionItem.id ], emptyMap); var features = state.features || []; var regradingFromSpeedGrader = features.includes('regrading_from_speedgrader') || false; var quiz = getActiveQuiz(state); return { activeItemId: state.grading.get('activeItemId'), activeQuizSessionId: state.quizSessions.get('activeQuizSessionId'), appContainer: state.ui.get('appContainer'), gradeByQuestionEnabled: state.grading.get('gradeByQuestionEnabled'), graderFeedback: workingSessionItemResult.getIn([ 'feedback', 'graderFeedback' ], emptyMap), itemResultsModifications: modifications, scrollKey: props.sessionItem.id, sessionItemResult: sessionItemResult, regradingFromSpeedGrader: regradingFromSpeedGrader, isSurvey: quiz.isSurvey() }; } var dispatchableActions = { setActiveItem: setActiveItem, toggleRegradingEditMode: toggleRegradingEditMode }; export var SessionItemResultWrapper = compose(connect(mapStateToProps, dispatchableActions), makeScrollable, makeEditable)(SessionItemResultWrapperPresenter); export default SessionItemResultWrapper;