Files
JavaScriptServices/samples/react/MusicStore/ReactApp/store/index.ts
2016-02-09 11:20:47 -08:00

28 lines
1.1 KiB
TypeScript

import { ActionCreatorGeneric } from 'redux-typed';
import * as FeaturedAlbums from './FeaturedAlbums';
import * as GenreList from './GenreList';
import * as GenreDetails from './GenreDetails';
import * as AlbumDetails from './AlbumDetails';
// The top-level state object
export interface ApplicationState {
featuredAlbums: FeaturedAlbums.FeaturedAlbumsState;
genreList: GenreList.GenresListState,
genreDetails: GenreDetails.GenreDetailsState,
albumDetails: AlbumDetails.AlbumDetailsState
}
// Whenever an action is dispatched, Redux will update each top-level application state property using
// the reducer with the matching name. It's important that the names match exactly, and that the reducer
// acts on the corresponding ApplicationState property type.
export const reducers = {
featuredAlbums: FeaturedAlbums.reducer,
genreList: GenreList.reducer,
genreDetails: GenreDetails.reducer,
albumDetails: AlbumDetails.reducer
};
// This type can be used as a hint on action creators so that its 'dispatch' and 'getState' params are
// correctly typed to match your store.
export type ActionCreator = ActionCreatorGeneric<ApplicationState>;