@@ -5,15 +5,18 @@ import {
55} from '@ngrx/store' ;
66import * as fromItems from './items/items.reducer' ;
77import * as fromWidgets from './widgets/widgets.reducer' ;
8+ import * as fromUsers from './users/users.reducer' ;
89
910export interface AppState {
1011 items : fromItems . ItemsState ;
11- widgets : fromWidgets . WidgetsState
12+ widgets : fromWidgets . WidgetsState ,
13+ users : fromUsers . UsersState
1214}
1315
1416export const reducers : ActionReducerMap < AppState > = {
1517 items : fromItems . itemsReducer ,
16- widgets : fromWidgets . widgetsReducer
18+ widgets : fromWidgets . widgetsReducer ,
19+ users : fromUsers . usersReducer
1720} ;
1821
1922// -------------------------------------------------------------------
@@ -85,3 +88,26 @@ export const selectCurrentWidget = createSelector(
8588 return widgetId ? widgetEntities [ widgetId ] : emptyWidget ;
8689 }
8790) ;
91+
92+ // -------------------------------------------------------------------
93+ // USERS SELECTORS
94+ // -------------------------------------------------------------------
95+ export const selectUserUsersState = createFeatureSelector < fromUsers . UsersState > ( 'users' ) ;
96+
97+ export const selectAllUsers = createSelector (
98+ selectUserUsersState ,
99+ fromUsers . selectAllUsers
100+ ) ;
101+
102+ export const selectUsersDetails = createSelector (
103+ selectAllUsers ,
104+ selectItemEntities ,
105+ selectWidgetEntities ,
106+ ( users , itemEntities , widgetEntities ) => {
107+ return users . map ( u => ( {
108+ ...u ,
109+ items : u . items . map ( itemId => itemEntities [ itemId ] ) ,
110+ widgets : u . widgets . map ( widgetId => widgetEntities [ widgetId ] )
111+ } ) ) ;
112+ }
113+ ) ;
0 commit comments