import {createSelector} from "reselect"; import {IrisClientType} from ".."; import {IrisState} from "./iris.reducer"; const getIrisState = (state):IrisState => state.iris; export const getUser = createSelector( [getIrisState], state => { return state.user } ); export const getUserJwt = createSelector( [getUser], user => { if (user) { return user.jwt; } throw new Error("User is not logged"); } ); export const isLoggedIn = createSelector( [getUser], Boolean ); export const getIrisChannel = createSelector( [getIrisState], state => state.channel ); export const getIrisSubject = createSelector( [getIrisState], state => state.subject ); export const getIrisSimChannel = createSelector( [getIrisState], state => state.simChannel ); export const getIrisConnectMessage = (client: IrisClientType) => createSelector( [getIrisChannel], channel => (channel ? client.messageBuilder.irisConnectMessage(channel) : null) ); export const selectors = { getUser: getUser, isLoggedIn: isLoggedIn, getIrisSubject: getIrisSubject, getIrisChannel: getIrisChannel, getIrisConnectMessage: getIrisConnectMessage, getUserJwt: getUserJwt, getIrisSimChannel: getIrisSimChannel };