Skip to content

Instantly share code, notes, and snippets.

@abalad
Created September 11, 2018 20:52
Show Gist options
  • Save abalad/d9c82af8bcdce904bb173a7e1fe3edaa to your computer and use it in GitHub Desktop.
Save abalad/d9c82af8bcdce904bb173a7e1fe3edaa to your computer and use it in GitHub Desktop.
import { NgxsEntityStateModel } from '../../shared/plugins/ngrx-entity/ngxs-entity.state.model';
import { NgxsEntityAdapter } from '../../shared/plugins/ngrx-entity/ngxs-entity.adapter';
import { LoadUsuariosSuccess, AddUserSuccess, UpdateUserSuccess, RemoveUserSuccess } from './user.actions';
export class UserStateModel extends NgxsEntityStateModel<UserModel> {}
@State<UserStateModel>({
name: 'user',
defaults: UserStateModel.InitialState()
})
export class UserState implements NgxsOnInit {
@Action(LoadUserSuccess)
loadUserSuccess( ctx: StateContext<UserStateModel>, { payload }: LoadUserSuccess ) {
NgxsEntityAdapter.addAll( payload, ctx );
}
@Action(AddUserSuccess)
addUserSuccess( ctx: StateContext<UserStateModel>, { payload }: AddUserSuccess ) {
NgxsEntityAdapter.addOne( payload, ctx );
NgxsEntityAdapter.stopLoading( ctx );
}
@Action(UpdateUserSuccess)
updateUserSuccess( ctx: StateContext<UserStateModel>, { payload }: UpdateUserSuccess ) {
NgxsEntityAdapter.updateOne( payload, ctx );
NgxsEntityAdapter.stopLoading( ctx );
}
@Action(RemoveUserSuccess)
removeUserSuccess( ctx: StateContext<UserStateModel>, { payload }: RemoveUserSuccess ) {
NgxsEntityAdapter.removeOne( payload, ctx );
NgxsEntityAdapter.stopLoading( ctx );
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment