loop-modules
Version:
Shared modules for the Loop product suite.
58 lines (48 loc) • 1.21 kB
text/typescript
// libs
import { Observable } from 'rxjs/Observable';
// app
import { LoopUser } from '../interfaces/loop-user.interface';
import { AppState } from './app.state';
/**
* The AppState slice for persisting LoopUser records
*
* @export
* @interface LoopUserState
*/
export interface LoopUserState {
/**
* The authorized user object
*
* @type {LoopUser}
* @memberOf LoopUserState
*/
authUser?: LoopUser;
/**
* The list of all users
*
* @type {LoopUser[]}
* @memberOf LoopUserState
*/
entries?: LoopUser[];
/**
* The list of all selected users
*
* @type {LoopUser[]}
* @memberOf LoopUserState
*/
selectedEntries?: LoopUser[];
}
export const initialState: LoopUserState = {
authUser: undefined,
entries: [],
selectedEntries: []
};
export function getAuthUser(state$: Observable<AppState>) {
return state$.select(state => state.users.authUser);
}
export function getUsers(state$: Observable<AppState>) {
return state$.select(state => state.users.entries);
}
export function getSelectedUsers(state$: Observable<AppState>) {
return state$.select(state => state.users.selectedEntries);
}