Skip to content

Instantly share code, notes, and snippets.

View jplemieux66's full-sized avatar

Jean-Philippe Lemieux jplemieux66

View GitHub Profile
@jplemieux66
jplemieux66 / angular-state-management-1.ts
Created January 31, 2018 13:36
Angular State Management 1
interface Action {
type: string;
payload?: any;
}
export function reducer(state = initialState, action: Action): State {
switch(action.type) {
case ACTION_TYPE: {
return action.payload
}
default:
return state;
}
}
{
"/api": {
"target": "http://localhost:8091",
"secure": false
}
}
import { NgModule } from "@angular/core";
import { MatExpansionModule, MatFormFieldModule, MatInputModule, MatDatepickerModule, MatButtonModule } from "@angular/material";
import { MatMomentDateModule } from "@angular/material-moment-adapter";
@NgModule({
imports: [
MatExpansionModule,
MatFormFieldModule,
MatInputModule,
MatDatepickerModule,
export interface State {
userId: number;
}
const initialState: State = {
userId: 1
};
export function reducer(state = initialState, action: user.Actions) {
switch(action.type) {
default:
return state;
}
}
export const getUserId = (state: State) => state.userId;
import { Action } from '@ngrx/store';
export const CHANGE_USER = '[User] Change User';
export class ChangeUser implements Action {
readonly type = CHANGE_USER;
constructor(public payload: number) {}
}
export function reducer(state = initialState, action: user.Actions) {
switch(action.type) {
case user.CHANGE_USER:
return {
userId: action.payload
};
default:
return state;
}