import { reducerWithInitialState } from 'typescript-fsa-reducers' import { combineReducers } from 'redux' import * as actions from './actions' const searchFocused = reducerWithInitialState(false) .case(actions.searchFocused, (state, focused: boolean) => focused) const searchQuery = reducerWithInitialState('') .case(actions.updateSearchQuery, (state, query: string) => query) const lastSeenAt = reducerWithInitialState({ current: Date.now(), previous: Date.now(), }) .case(actions.updateLastSeenAt, ({ current }, payload) => { return { current: payload || Date.now(), previous: current, } }) export default combineReducers({ lastSeenAt, search: combineReducers({ focused: searchFocused, query: searchQuery, }), })