Skip to content
Snippets Groups Projects
instance.reducer.ts 1.29 KiB
/**
 * 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';

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';
import * as samp from './store/reducers/samp.reducer';
import * as coneSearch from './store/reducers/cone-search.reducer';
import * as detail from './store/reducers/detail.reducer';

export interface State {
    search: search.State,
    searchMultiple: searchMultiple.State,
    samp: samp.State,
    coneSearch: coneSearch.State
    detail: detail.State
}

const reducers = {
    search: search.searchReducer,
    searchMultiple: searchMultiple.searchMultipleReducer,
    samp: samp.sampReducer,
    coneSearch: coneSearch.coneSearchReducer,
    detail: detail.detailReducer
};

export const instanceReducer = combineReducers(reducers);
export const getInstanceState = createFeatureSelector<State>('instance');
export const selectRouterState = createFeatureSelector<RouterReducerState>('router');