Files
Eventment/app/selectors/events.js

34 lines
860 B
JavaScript

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(
[getEvents],
(eventsAsMap) => eventsAsMap.first(),
);
export const getEventsAsList = createSelector(
[getEvents],
(eventsAsMap) => eventsAsMap.toList(),
);
export const hasMultipleEvents = createSelector(
[getEvents],
(eventsAsMap) => eventsAsMap.size > 1,
);