wongjiahau/ttap-web

View on GitHub
src/ts/redux/actions/notifyIfTimetableIsFound.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { IMasterState, MasterStateAction } from "./../reducers/masterState";

export class NotifyIfTimetableIsFound extends MasterStateAction {
  public constructor() {
    super();
  }
  public TypeName(): string {
    return "notify if timetable is found";
  }
  protected GenerateNewState(state: IMasterState): IMasterState {
    const numberOfTimetablesFound =
      state.TimetableListState.FiltrateTimetables.length;
    const shouldShowSnackbar = state.SubjectListState.Subjects.some(
      (s) => s.IsSelected
    );
    const message = `${numberOfTimetablesFound} possible timetables found.`;
    return {
      ...state,
      SnackbarState: {
        ...state.SnackbarState,
        Message: message,
        IsOpen: shouldShowSnackbar,
      },
    };
  }
}