diff --git a/client/coral-admin/src/actions/configure.js b/client/coral-admin/src/actions/configure.js index cdb2a3d1b..cf33a4d11 100644 --- a/client/coral-admin/src/actions/configure.js +++ b/client/coral-admin/src/actions/configure.js @@ -3,3 +3,7 @@ import * as actions from 'constants/configure'; export const updatePending = ({updater, errorUpdater}) => { return {type: actions.UPDATE_PENDING, updater, errorUpdater}; }; + +export const clearPending = () => { + return {type: actions.CLEAR_PENDING}; +}; diff --git a/client/coral-admin/src/constants/configure.js b/client/coral-admin/src/constants/configure.js index 00985e3ff..f2d55a2c2 100644 --- a/client/coral-admin/src/constants/configure.js +++ b/client/coral-admin/src/constants/configure.js @@ -1,3 +1,4 @@ const prefix = 'CORAL_ADMIN'; export const UPDATE_PENDING = `${prefix}_UPDATE_PENDING`; +export const CLEAR_PENDING = `${prefix}_CLEAR_PENDING`; diff --git a/client/coral-admin/src/graphql/index.js b/client/coral-admin/src/graphql/index.js index 6b8aa7456..bb83199e5 100644 --- a/client/coral-admin/src/graphql/index.js +++ b/client/coral-admin/src/graphql/index.js @@ -29,6 +29,16 @@ export default { } } }), + UpdateSettings: ({variables: {input}}) => ({ + updateQueries: { + TalkAdmin_Configure: (prev) => { + const updated = update(prev, { + settings: {$merge: input}, + }); + return updated; + } + } + }), }, }; diff --git a/client/coral-admin/src/reducers/configure.js b/client/coral-admin/src/reducers/configure.js index 116c8663f..a692addc1 100644 --- a/client/coral-admin/src/reducers/configure.js +++ b/client/coral-admin/src/reducers/configure.js @@ -30,6 +30,12 @@ export default function configure(state = initialState, action) { return next; } + case actions.CLEAR_PENDING: + return { + ...state, + pending: {}, + canSave: false, + }; } return state; } diff --git a/client/coral-admin/src/routes/Configure/components/Configure.js b/client/coral-admin/src/routes/Configure/components/Configure.js index f60951de3..5b5f9a524 100644 --- a/client/coral-admin/src/routes/Configure/components/Configure.js +++ b/client/coral-admin/src/routes/Configure/components/Configure.js @@ -14,10 +14,6 @@ export default class Configure extends Component { activeSection: 'stream', }; - saveSettings = () => { - this.props.saveSettingsToServer(); - } - changeSection = (activeSection) => { this.setState({activeSection}); } @@ -57,7 +53,7 @@ export default class Configure extends Component { render () { const {activeSection} = this.state; const section = this.getSection(activeSection); - const {auth: {user}, canSave} = this.props; + const {auth: {user}, canSave, savePending} = this.props; if (!can(user, 'UPDATE_CONFIG')) { return
You must be an administrator to access config settings. Please find the nearest Admin and ask them to level you up!
; @@ -82,7 +78,7 @@ export default class Configure extends Component { canSave ?