UNPKG

@instructure/quiz-taking

Version:
44 lines (36 loc) 1.52 kB
import {connect} from '@instructure/quiz-core/common/react-redux' import {getQuizSessions} from '@instructure/quiz-core/moderating/api/quizSessions' import {getQuizSessionById} from '@instructure/quiz-core/common/selectors/quizSessions' import {AttemptHistory as AttemptHistoryPresenter} from './presenter' function getAttemptData(state, attempt) { let authoritativeResult, quizSession let resultObject = {} if (attempt.quizSessionId) { quizSession = getQuizSessionById(state, attempt.quizSessionId) authoritativeResult = quizSession.findAuthoritativeResult() resultObject = authoritativeResult.toObject() } return { ...attempt, score: resultObject.score, pointsPossible: resultObject.pointsPossible, } } export function mapStateToProps(state, ownProps) { const {attemptHistory} = ownProps if (!attemptHistory || attemptHistory.length === 0) return {} let attemptHistoryWithData = attemptHistory.map(attempt => getAttemptData(state, attempt)) if (ownProps.findAuthoritativeAttempt) { const authoritativeAttempt = ownProps.findAuthoritativeAttempt(attemptHistoryWithData) attemptHistoryWithData = attemptHistoryWithData.map(attempt => ({ ...attempt, authoritative: attempt === authoritativeAttempt, })) } return { attemptHistory: attemptHistoryWithData, } } export const mapDispatchToProps = {getQuizSessions} export const AttemptHistory = connect(mapStateToProps, mapDispatchToProps)(AttemptHistoryPresenter) export default AttemptHistory