UNPKG

@instructure/quiz-taking

Version:
32 lines (25 loc) 1.14 kB
import {connect} from '@instructure/quiz-core/common/react-redux' import {screenreaderNotification} from '@instructure/quiz-core/common/actions/alerts' import {pinSessionItem} from '@instructure/quiz-core/common/api/quizSessions' import {getActiveQuizSession} from '@instructure/quiz-core/common/selectors/quizSessions' import {TakingSidebarItem as SidebarItem} from './presenter' function mapStateToProps(state, ownProps) { const quizSession = getActiveQuizSession(state) const responses = state.taking.get('responses') // Check if there's a response at this position by finding any response // whose position property matches the actual position (not the display question number) const isAnswered = responses ? responses.some(response => response?.get('position') === ownProps.actualPosition) : false return { isPinned: quizSession.pins().includes(ownProps.position), isAnswered, quizSession, } } const mapDispatchToProps = { screenreaderNotification, pinSessionItem, } export const TakingSidebarItem = connect(mapStateToProps, mapDispatchToProps)(SidebarItem) export default TakingSidebarItem