nukeop/nuclear

View on GitHub
packages/app/app/reducers/lyrics.ts

Summary

Maintainability
A
0 mins
Test Coverage
import * as LyricsActions from '../actions/lyrics';
import { ActionType, getType } from 'typesafe-actions';

type LyricsState = {
  lyricsSearchStarted: boolean
  lyricsSearchResult: string
}

const initialState: LyricsState = {
  lyricsSearchStarted: false,
  lyricsSearchResult: ''
};

type LyricsActions = ActionType<typeof LyricsActions>

export default function LyricsReducer (state = initialState, action: LyricsActions) {
  switch (action.type) {
  case getType(LyricsActions.lyricsSearchStart):
    return Object.assign({}, state, {
      lyricsSearchStarted: true
    });
  case getType(LyricsActions.lyricsSearchSuccess):
    return Object.assign({}, state, {
      lyricsSearchResult: action.payload
    });
  case getType(LyricsActions.lyricsResetScroll):
    return Object.assign({}, state, {
      lyricsSearchResult: ''
    });
  default:
    return state;
  }
}