/** * External dependencies */ import { values } from 'lodash'; import { createIndexedSelector } from '@nelio-content/utils'; import type { ExternalEvent, Maybe, Url, Uuid } from '@nelio-content/types'; /** * Internal dependencies */ import type { State } from '../../config'; export function getExternalEvent( state: State, id?: Uuid ): Maybe< ExternalEvent > { return id ? state.entities.externalEvents[ id ] : undefined; } export const getExternalEvents = createIndexedSelector( ( state: State, calendarId?: Url ): ReadonlyArray< ExternalEvent > => { const events = values( state.entities.externalEvents ); return events.filter( ( ev ) => ev.calendar === calendarId ); }, ( state: State, calendarId?: Url ) => ( { key: calendarId || '', dependants: [ state.entities.externalEvents ], } ) );