Skip to content
Snippets Groups Projects
instance.reducer.ts 1.37 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 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,
    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');
export const selectRouterState = createFeatureSelector<RouterReducerState>('router');