ngx-rx-if
Version:
An implementation of conditional reactive directive based on @ngrx/store (Redux)
35 lines (31 loc) • 870 B
text/typescript
import { Action } from '@ngrx/store';
import { IAppPermissionState } from './permission.state';
import { PermissionService } from './permission.service';
const DEFAULT_STATE: IAppPermissionState = {
loading: false,
values: null
};
export function permissionReducer(state = DEFAULT_STATE, action: Action): IAppPermissionState {
switch (action.type) {
case PermissionService.PERMISSIONS_APPLY:
return {
...state,
values: action.payload
};
case PermissionService.PERMISSION_APPLY:
return {
...state,
values: {
...state.values,
[action.payload.permission]: action.payload.hasPermission
}
};
case PermissionService.PERMISSIONS_CLEAR:
return {
...state,
values: null
};
default:
return state;
}
}