import { Map } from 'immutable'; import { createSelector } from 'reselect'; import { getActiveEventId } from './activeEvent.js'; const getState = (state) => state; export const getEventById = (state, eventId) => state.getIn(['events', eventId], false); export const getEvents = createSelector( [getState], (state) => state.get('events') || new Map(), ); export const getActiveEvent = createSelector( [getActiveEventId, getEvents], (eventId, eventsAsMap) => (eventId ? eventsAsMap.get(eventId) : null), ); export const getDefaultEvent = createSelector( [getActiveEvent, getEvents], (activeEvent, eventsAsMap) => activeEvent || eventsAsMap.first(), ); export const getEventsAsList = createSelector( [getEvents], (eventsAsMap) => eventsAsMap.toList(), ); export const hasMultipleEvents = createSelector( [getEvents], (eventsAsMap) => eventsAsMap.size > 1, );