@instructure/quiz-taking
Version:
26 lines (25 loc) • 1.32 kB
JavaScript
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) {
var quizSession = getActiveQuizSession(state);
var 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)
var isAnswered = responses ? responses.some(function(response) {
return (response === null || response === void 0 ? void 0 : response.get('position')) === ownProps.actualPosition;
}) : false;
return {
isPinned: quizSession.pins().includes(ownProps.position),
isAnswered: isAnswered,
quizSession: quizSession
};
}
var mapDispatchToProps = {
screenreaderNotification: screenreaderNotification,
pinSessionItem: pinSessionItem
};
export var TakingSidebarItem = connect(mapStateToProps, mapDispatchToProps)(SidebarItem);
export default TakingSidebarItem;