diff --git a/app/components/component-dashboard/src/components/Dashboard.js b/app/components/component-dashboard/src/components/Dashboard.js index ea630c0d0d26b4a2d3175f88a4433e940f4f4e2b..899780e5f54c8e17dc9f24885d091077f2a20d64 100644 --- a/app/components/component-dashboard/src/components/Dashboard.js +++ b/app/components/component-dashboard/src/components/Dashboard.js @@ -22,22 +22,21 @@ import { import hasRole from '../../../../shared/hasRole' const Dashboard = ({ history, ...props }) => { - // const uploadManuscript = upload() - // const [conversion] = useContext(XpubContext) - const { loading, data, error } = useQuery(queries.dashboard) const [reviewerRespond] = useMutation(mutations.reviewerResponseMutation) const [deleteManuscript] = useMutation(mutations.deleteManuscriptMutation, { update: (proxy, { data: { deleteManuscript } }) => { const data = proxy.readQuery({ query: queries.dashboard }) - const manuscriptIndex = data.manuscripts.findIndex( - manuscript => manuscript.id === deleteManuscript, + const manuscripts = data.manuscripts.filter( + manuscript => manuscript.id !== deleteManuscript, ) - if (manuscriptIndex > -1) { - data.manuscripts.splice(manuscriptIndex, 1) - proxy.writeQuery({ query: queries.dashboard, data }) - } + proxy.writeQuery({ + query: queries.dashboard, + data: { + manuscripts, + }, + }) }, }) diff --git a/app/components/component-submit/src/components/SubmitPage.js b/app/components/component-submit/src/components/SubmitPage.js index c84920c278bd812c1d233de33101f9a04c43ae32..5c6ce3ed5bfc80c4b458a073b6829b00b553a2a3 100644 --- a/app/components/component-submit/src/components/SubmitPage.js +++ b/app/components/component-submit/src/components/SubmitPage.js @@ -20,6 +20,7 @@ const fragmentFields = ` url } reviews { + id open recommendation created @@ -138,119 +139,6 @@ const createFileMutation = gql` } ` -// export default compose( -// graphql(query, { -// options: ({ match }) => ({ -// variables: { -// id: match.params.version, -// form: 'submit', -// }, -// }), -// props: ({ data }) => ({ data: nullToEmpty(data) }), -// }), -// graphql(createFileMutation, { -// props: ({ mutate, ownProps }) => ({ -// createFile: value => { -// const file = { -// url: value.url, -// filename: value.filename, -// mimeType: value.mimeType, -// size: value.size, -// fileType: 'supplementary', -// object: 'Manuscript', -// objectId: ownProps.match.params.version, -// } - -// mutate({ -// variables: { -// file, -// }, -// }) -// }, -// }), -// }), -// graphql(uploadSuplementaryFilesMutation, { -// props: ({ mutate, ownProps }) => ({ -// uploadFile: file => -// mutate({ -// variables: { -// file, -// }, -// }), -// }), -// }), -// graphql(updateMutation, { -// props: ({ mutate, ownProps }) => { -// const debouncers = {} -// const onChange = (value, path) => { -// const input = {} -// set(input, path, value) -// debouncers[path] = debouncers[path] || debounce(updateManuscript, 300) -// return debouncers[path](input) -// } - -// const updateManuscript = input => -// mutate({ -// variables: { -// id: ownProps.match.params.version, -// input: JSON.stringify(emptyToUndefined(input)), -// }, -// }) - -// return { -// onChange, -// } -// }, -// }), -// graphql(updateMutation, { -// props: ({ mutate, ownProps }) => ({ -// onSubmit: (manuscript, { history }) => { -// const updateManuscript = { -// status: 'submitted', -// } - -// mutate({ -// variables: { -// id: ownProps.match.params.version, -// input: JSON.stringify(updateManuscript), -// }, -// }).then(() => { -// history.push('/journal/dashboard') -// }) -// }, -// }), -// }), -// withProps(({ getFile, manuscript, match: { params: { journal } } }) => ({ -// journal: { id: journal }, -// forms: cloneDeep(getFile), -// manuscript, -// submitSubmission: ({ validateForm, setSubmitting, handleSubmit }) => -// validateForm().then(props => -// isEmpty(props) ? setSubmitting(false) : handleSubmit(), -// ), -// })), -// withFormik({ -// initialValues: {}, -// mapPropsToValues: ({ manuscript }) => -// Object.assign({}, manuscript, { -// submission: JSON.parse(manuscript.submission), -// }), -// displayName: 'submit', -// handleSubmit: ( -// props, -// { validateForm, setSubmitting, props: { onSubmit, history } }, -// ) => -// validateForm().then(props => -// isEmpty(props) ? onSubmit(props, { history }) : setSubmitting(false), -// ), -// }), -// withState('confirming', 'setConfirming', false), -// withHandlers({ -// toggleConfirming: ({ validateForm, setConfirming, handleSubmit }) => () => -// setConfirming(confirming => !confirming), -// }), -// )(Submit) - const SubmitPage = ({ match, history, ...props }) => { const [confirming, setConfirming] = useState(false) diff --git a/app/components/component-submit/src/upload.js b/app/components/component-submit/src/upload.js index 7e7f5d3e62ef51a2bb02c634f019ba87fcf013f4..99338907f8c77a474dc3fda3904d445bacb8aa4f 100644 --- a/app/components/component-submit/src/upload.js +++ b/app/components/component-submit/src/upload.js @@ -159,21 +159,21 @@ const createManuscriptPromise = ( update: (cache, { data: { createManuscript } }) => { cache.modify({ fields: { - manuscripts(existingManuscritps = []) { - return [...existingManuscritps, createManuscript] + manuscripts(existingManuscriptRefs = []) { + // Get the reference for the cache entry generated by useMutation + const newManuscriptRef = cache.writeFragment({ + data: createManuscript, + fragment: gql` + fragment NewManuscript on Manuscript { + id + } + `, + }) + + return [...existingManuscriptRefs, newManuscriptRef] }, }, }) - // let data = proxy.readQuery({ query: queries.dashboard }) - // data.manuscripts.push(createManuscript) - // proxy.writeQuery({ query: queries.dashboard, data }) - - // data = proxy.readQuery({ - // query: queries.getUser, - // variables: { id: currentUser.id }, - // }) - // data.user.teams.push(createManuscript.teams[0]) - // proxy.writeQuery({ query: queries.getUser, data }) }, }) }