UNPKG

@instructure/quiz-grading

Version:

The Quiz React SDK by Instructure Inc.

52 lines (44 loc) 1.97 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 const emptyMap = Map() function mapStateToProps(state, props) { const sessionItemResult = props.sessionItem.sessionItemResult const workingSessionItemResult = sessionItemResult.getWorkingInstance() const modifications = state.modifications.getIn( ['sessionItemResults', props.sessionItem.id], emptyMap, ) const features = state.features || [] const regradingFromSpeedGrader = features.includes('regrading_from_speedgrader') || false const 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, regradingFromSpeedGrader, isSurvey: quiz.isSurvey(), } } const dispatchableActions = { setActiveItem, toggleRegradingEditMode, } export const SessionItemResultWrapper = compose( connect(mapStateToProps, dispatchableActions), makeScrollable, makeEditable, )(SessionItemResultWrapperPresenter) export default SessionItemResultWrapper