import { createSelector } from 'reselect'; import { selectPools } from '../../pools/store/pool.selectors'; import { StoreState } from '../../../common/store/store.types'; const userStateSlice = (state: StoreState) => state.user; export const selectUserData = (state: StoreState) => userStateSlice(state).data; export const selectUserDataCountry = (state: StoreState) => selectUserData(state).country; export const selectUserUpdating = (state: StoreState) => userStateSlice(state).updating; const selectUserPoolIds = (state: StoreState) => selectUserData(state).pools; export const selectCompanyEntities = createSelector(selectUserData, (userData) => { const { company } = userData; return company?.join(', '); }); export const selectTermsNeedingAccept = (state: StoreState) => selectUserData(state)?.termsNeedingAccept; export const selectUserTermsToAccept = (state: StoreState) => selectUserData(state)?.termsToAccept; export const selectUserAccess = pool => createSelector(selectUserPools, pools => pools.map(pool => pool.id).includes(pool)); export const selectUserRole = (state: StoreState) => state.user.role; export const selectUserAvatar = (state: StoreState) => state.user.data.avatar; export const selectUserPools = createSelector(selectPools, selectUserPoolIds, (pools, userPools) => pools.filter(pool => userPools.includes(pool.id)));