cluedin-widget
Version: 
This is the project for creating and managing widgets in CluedIn.
70 lines (56 loc) • 1.61 kB
JavaScript
import constants from '../constants';
import { unauthorized } from './generic';
import { suggestedSearch, search } from '../data/search';
var requestSuggestedSearch = () => {
    return {
        type: constants.search.REQUEST_SUGGESTED_SEARCH
    };
};
var receiveGenericLastTasks = ( query, suggested ) => {
    return {
        type: constants.search.RECEIVE_SUGGESTED_SEARCH,
        data: {
            suggestedSearches: suggested,
            suggestedSearchQuery: query
        }
    };
};
var invalidGenericLastTasks = () => {
    return {
        type: constants.search.INVALID_SUGGESTED_SEARCH
    };
};
export function shouldFetchSuggestedSearch( q ) {
    return function( dispatch ) {
        dispatch( requestSuggestedSearch() );
        return suggestedSearch( q ).then( function( resp ) {
            dispatch( receiveGenericLastTasks( q, resp ) );
        } ).catch( unauthorized( dispatch, invalidGenericLastTasks ) );
    };
}
var requestSearch = () => {
    return {
        type: constants.search.REQUEST_SEARCH
    };
};
var receiveSearch = ( searchResult ) => {
    return {
        type: constants.search.RECEIVE_SEARCH,
        data: {
            searchResult: searchResult
        }
    };
};
var invalidSearch = () => {
    return {
        type: constants.search.INVALID_SEARCH
    };
};
export function shouldFetchSearch( q ) {
    return function( dispatch ) {
        dispatch( requestSearch() );
        return search( q ).then( function( resp ) {
            dispatch( receiveSearch( resp ) );
        } ).catch( unauthorized( dispatch, invalidSearch ) );
    };
}