Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 5x 5x 5x 5x 5x 5x 5x 2x 1x 1x 3x 3x | import { EntityState, createEntityAdapter } from '@ngrx/entity';
import { createReducer, on } from '@ngrx/store';
import { HttpError } from 'ish-core/models/http-error/http-error.model';
import { setErrorOn } from 'ish-core/utils/ngrx-creators';
import { StoreLocation } from '../../models/store-location/store-location.model';
import { highlightStore, loadStores, loadStoresFail, loadStoresSuccess } from './stores.actions';
export interface StoresState extends EntityState<StoreLocation> {
loading: boolean;
highlighted: string;
error: HttpError;
}
export const storesAdapter = createEntityAdapter<StoreLocation>({ selectId: store => store.id });
export const initialState: StoresState = storesAdapter.getInitialState({
loading: false,
highlighted: undefined,
error: undefined,
});
export const storesReducer = createReducer(
initialState,
on(loadStores, (state): StoresState => ({ ...state, loading: true })),
setErrorOn(loadStoresFail),
on(highlightStore, (state, action): StoresState => {
const { storeId } = action.payload;
return { ...state, highlighted: storeId };
}),
on(loadStoresSuccess, (state, action) => {
const { stores } = action.payload;
return storesAdapter.setAll(stores, { ...state, loading: false, error: undefined });
})
);
|