Skip to content
Snippets Groups Projects
instance.reducer.ts 1.37 KiB
Newer Older
  • Learn to ignore specific revisions
  • /**
     * This file is part of Anis Client.
     *
     * @copyright Laboratoire d'Astrophysique de Marseille / CNRS
     *
     * For the full copyright and license information, please view the LICENSE
     * file that was distributed with this source code.
     */
    
    import { combineReducers, createFeatureSelector } from '@ngrx/store';
    
    
    François Agneray's avatar
    François Agneray committed
    import { RouterReducerState } from 'src/app/custom-route-serializer';
    
    import * as search from './store/reducers/search.reducer';
    
    import * as searchMultiple from './store/reducers/search-multiple.reducer';
    
    François Agneray's avatar
    François Agneray committed
    import * as coneSearch from './store/reducers/cone-search.reducer';
    
    import * as detail from './store/reducers/detail.reducer';
    
    import * as archive from './store/reducers/archive.reducer';
    
    /**
     * Interface for instance state.
     *
     * @interface State
     */
    
    export interface State {
        search: search.State,
    
        searchMultiple: searchMultiple.State,
    
    François Agneray's avatar
    François Agneray committed
        coneSearch: coneSearch.State
    
        detail: detail.State,
    
        archive: archive.State
    
    }
    
    const reducers = {
        search: search.searchReducer,
    
        searchMultiple: searchMultiple.searchMultipleReducer,
    
        coneSearch: coneSearch.coneSearchReducer,
    
        detail: detail.detailReducer,
    
        archive: archive.archiveReducer
    
    };
    
    export const instanceReducer = combineReducers(reducers);
    export const getInstanceState = createFeatureSelector<State>('instance');
    
    François Agneray's avatar
    François Agneray committed
    export const selectRouterState = createFeatureSelector<RouterReducerState>('router');