fisenkodv/itinerary

View on GitHub
src/app/modules/core/state/layout.state.ts

Summary

Maintainability
A
1 hr
Test Coverage
import { State, Action, StateContext, Selector } from '@ngxs/store';
import { OpenSidenav, CloseSidenav } from './layout.actions';

export interface LayoutStateModel {
  showSidenav: boolean;
}

@State<LayoutStateModel>({
  name: 'layout',
  defaults: { showSidenav: false }
})
export class LayoutState {
  @Selector()
  public static showSidenav(state: LayoutStateModel): boolean {
    return state.showSidenav;
  }

  @Action(OpenSidenav)
  openSidenav({ patchState }: StateContext<LayoutStateModel>) {
    patchState({ showSidenav: true });
  }

  @Action(CloseSidenav)
  closeSidenav({ patchState }: StateContext<LayoutStateModel>) {
    patchState({ showSidenav: false });
  }
}