cluedin-widget
Version:
This is the project for creating and managing widgets in CluedIn.
55 lines (44 loc) • 1.44 kB
JavaScript
import constants from '../constants';
import { unauthorized } from './generic';
import { getLastGenericTasks } from '../data/task';
import fake from '../../iso/entity/fake';
var shouldFetchGenericLastTasks = ( state ) => {
return (!state.genericLastTasks || state.genericLastTasks.length === 0);
};
var requestGenericLastTasks = () => {
return {
type: constants.task.REQUEST_GENERIC_LAST_TASKS
};
};
var receiveGenericLastTasks = ( tasks, fake ) => {
return {
type: constants.task.RECEIVE_GENERIC_LAST_TASKS,
data: {
tasks: tasks,
isFake: fake
}
};
};
var invalidGenericLastTasks = () => {
return {
type: constants.task.INVALID_GENERIC_LAST_TASKS
};
};
var fetchGenericLastTasks = () => {
return function( dispatch ) {
dispatch( requestGenericLastTasks() );
return getLastGenericTasks().then( function( resp ) {
if ( !resp || resp.length === 0 ) {
return dispatch( receiveGenericLastTasks( fake.document, true ) );
}
dispatch( receiveGenericLastTasks( resp ) );
} ).catch( unauthorized( dispatch, invalidGenericLastTasks ) );
};
};
export function shouldFetchGenericLastTasks() {
return ( dispatch, getState ) => {
if ( shouldFetchGenericLastTasks( getState() ) ) {
return dispatch( fetchGenericLastTasks() );
}
};
}