This repository was archived by the owner on Jul 8, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 28
Example Stored + Entity #40
Comments
// Interface
export interface CircuitListState extends EntityState<ICircuit> {
loaded: boolean;
loading: boolean;
}
// Create adapter
export const CircuitAdapter: EntityAdapter<ICircuit> = createEntityAdapter<ICircuit>({
sortComparer: false
});
// Init
export const initialStateEntity: CircuitListState = CircuitAdapter.getInitialState({
loaded: false,
loading: false
});
@Injectable()
@Store<CircuitListState>(initialStateEntity)
export class CircuitReducerV2 {
constructor(
private circuitsService: CircuitsService
) {}
@Action(CircuitsModule.SuccessLoadCircuit)
SuccessLoadCircuit(
state: CircuitListState,
action: CircuitsModule.SuccessLoadCircuit
) {
return {
...CircuitAdapter.addMany(action.payload, state),
loading: false,
loaded: true
};
}
@Action(CircuitsModule.LoadCircuit)
LoadCircuit(
state: CircuitListState,
action: CircuitsModule.LoadCircuit
) {
return {
...CircuitAdapter.removeAll(state),
loading: true
};
}
@Action(CircuitsModule.AddManyCircuit)
AddManyCircuit(
state: CircuitListState,
action: CircuitsModule.AddManyCircuit
) {
return {
...CircuitAdapter.addMany(action.payload, state)
};
}
@Action(CircuitsModule.RemoveOneCircuit)
RemoveOneCircuit(
state: CircuitListState,
action: CircuitsModule.RemoveOneCircuit
) {
return CircuitAdapter.removeOne(action.payload, state);
}
@Action(CircuitsModule.PatchCircuit)
PatchCircuit(
state: CircuitListState,
action: CircuitsModule.PatchCircuit
) {
return CircuitAdapter.updateOne({id: action.payload.id, changes: action.payload}, state);
}
@Effect(FiltersModule.ChangeUserFilters)
RequestCircuits(
state: CircuitListState,
action: FiltersModule.ChangeUserFilters
) {
const ids = filterUserConfig(action.payload);
const httpParams = { location_id: ids.join(','), status: 'to_plan' };
return this.circuitsService.getCircuits(httpParams)
.pipe(
map(data => new CircuitsModule.SuccessLoadCircuit(data)),
catchError(err => of(new ErrorModule.ErrorHandle(err)))
);
}
@Effect(TechnicianSelectedModule.AddNewSingleProgrammation)
DeleteCircuit(
state: CircuitListState,
action: TechnicianSelectedModule.AddNewSingleProgrammation
) {
return new CircuitsModule.RemoveOneCircuit(action.payload.circuit.id);
}
} |
@abalad it work like before, juste pass the getInitialState of your adapter to the Store Decorator |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
How Use @Store with Entity Works
The text was updated successfully, but these errors were encountered: