Block save/publish buttons while processing

This commit is contained in:
Cássio Zen 2017-01-11 22:36:49 -02:00
parent 48d8077ff0
commit 4f2dc92bfe
2 changed files with 16 additions and 5 deletions

View File

@ -83,7 +83,7 @@ class UnpublishedListing extends React.Component {
<Button>Edit</Button>
</Link>
{
ownStatus === status.last() &&
(ownStatus === status.last() && !entry.get('isPersisting', false)) &&
<Button
accent
/* eslint-disable */

View File

@ -7,7 +7,9 @@ import {
UNPUBLISHED_ENTRIES_REQUEST,
UNPUBLISHED_ENTRIES_SUCCESS,
UNPUBLISHED_ENTRY_PERSIST_REQUEST,
UNPUBLISHED_ENTRY_PERSIST_SUCCESS,
UNPUBLISHED_ENTRY_STATUS_CHANGE_REQUEST,
UNPUBLISHED_ENTRY_STATUS_CHANGE_SUCCESS,
UNPUBLISHED_ENTRY_PUBLISH_REQUEST,
} from '../actions/editorialWorkflow';
import { CONFIG_SUCCESS } from '../actions/config';
@ -51,15 +53,24 @@ const unpublishedEntries = (state = null, action) => {
// Update Optimistically
return state.withMutations((map) => {
map.setIn(['entities', `${ action.payload.collection }.${ action.payload.entry.get('slug') }`], fromJS(action.payload.entry));
map.setIn(['entities', `${ action.payload.collection }.${ action.payload.entry.get('slug') }`, 'isPersisting'], true);
map.updateIn(['pages', 'ids'], List(), list => list.push(action.payload.entry.get('slug')));
});
case UNPUBLISHED_ENTRY_PERSIST_SUCCESS:
// Update Optimistically
return state.deleteIn(['entities', `${ action.payload.collection }.${ action.payload.entry.get('slug') }`, 'isPersisting']);
case UNPUBLISHED_ENTRY_STATUS_CHANGE_REQUEST:
// Update Optimistically
return state.setIn(
['entities', `${ action.payload.collection }.${ action.payload.slug }`, 'metaData', 'status'],
action.payload.newStatus
);
return state.withMutations((map) => {
map.setIn(['entities', `${ action.payload.collection }.${ action.payload.slug }`, 'metaData', 'status'], action.payload.newStatus);
map.setIn(['entities', `${ action.payload.collection }.${ action.payload.slug }`, 'isPersisting'], true);
});
case UNPUBLISHED_ENTRY_STATUS_CHANGE_SUCCESS:
// Update Optimistically
return state.deleteIn(['entities', `${ action.payload.collection }.${ action.payload.slug }`, 'isPersisting']);
case UNPUBLISHED_ENTRY_PUBLISH_REQUEST:
// Update Optimistically