import { createSelector, ParametricSelector } from 'reselect'; import { APP_STATUS } from '../constants'; import { Application } from '../types'; export const getApplicationsList: ParametricSelector = ( applicationsList: Application[], ) => applicationsList || []; export const getApplications: ParametricSelector = createSelector( getApplicationsList, applications => applications.filter(({ name }) => name !== null), ); export const getActiveApplications: ParametricSelector = createSelector( getApplications, applications => applications.filter(({ status }) => status === APP_STATUS.ACTIVE), ); export const hasConnectedApplications: ParametricSelector = createSelector( getActiveApplications, applications => applications.length > 0, ); export const getApplication: ParametricSelector = createSelector( getApplicationsList, (_: any, id: string) => id, (applications, appId) => applications.find(({ id }) => id === appId), );