@shopgate/engage
Version:
Shopgate's ENGAGE library.
3 lines • 803 B
JavaScript
import PipelineRequest from'@shopgate/pwa-core/classes/PipelineRequest';import{shouldFetchData}from'@shopgate/pwa-common/helpers/redux';import{requestConfig,receiveConfig,errorConfig}from"./config.action-creators";import{makeGetConfig}from"./config.selectors";import{PIPELINE_CORE_GET_CONFIG}from"./config.constants";/**
* @returns {Function} A redux thunk.
*/export var fetchConfig=function fetchConfig(){return function(dispatch,getState){var getConfig=makeGetConfig();var config=getConfig(getState());if(!shouldFetchData(config)){return Promise.resolve(config);}dispatch(requestConfig());var request=new PipelineRequest(PIPELINE_CORE_GET_CONFIG).dispatch();request.then(function(result){dispatch(receiveConfig(result));})["catch"](function(error){dispatch(errorConfig(error));});return request;};};