cluedin-widget
Version: 
This is the project for creating and managing widgets in CluedIn.
36 lines (34 loc) • 1.34 kB
JavaScript
const constants = require( '../constants' );
const initialState = {
    searchResult: void 0,
    isFetchingSearch: false,
    suggestedSearches: [],
    suggestedSearchQuery: ''
};
module.exports = function update( state = initialState, action = {} ) {
    switch( action.type ) {
        case constants.search.REQUEST_SEARCH:
            return Object.assign( {}, {
                isFetchingSearch: true,
                searchResult: state.searchResult,
                suggestedSearches: state.suggestedSearches,
                suggestedSearchQuery: state.suggestedSearchQuery
            } );
        case constants.search.RECEIVE_SEARCH:
            return Object.assign( {}, {
                searchResult: action.data.searchResult,
                isFetchingSearch: false,
                suggestedSearches: state.suggestedSearches,
                suggestedSearchQuery: state.suggestedSearchQuery
            } );
        case constants.search.RECEIVE_SUGGESTED_SEARCH:
            return Object.assign( {}, {
                searchResult: state.searchResult,
                isFetchingSearch: state.isFetchingSearch,
                suggestedSearches: action.data.suggestedSearches,
                suggestedSearchQuery: action.data.suggestedSearchQuery
            } );
        default:
            return state;
    }
};