@instructure/quiz-grading
Version:
The Quiz React SDK by Instructure Inc.
44 lines (43 loc) • 2.15 kB
JavaScript
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;