diff --git a/client/src/pages/studentSubmission.vue b/client/src/pages/studentSubmission.vue index b24c8d89..9c9adb06 100644 --- a/client/src/pages/studentSubmission.vue +++ b/client/src/pages/studentSubmission.vue @@ -214,14 +214,22 @@ const data = store.readQuery({query, variables}); if (data) { + if (!data.studentSubmission.submissionFeedback) { + data.studentSubmission.submissionFeedback = { + '__typename': 'SubmissionFeedbackNode' + }; + } + data.studentSubmission.submissionFeedback = Object.assign({}, data.studentSubmission.submissionFeedback, { id: updatedSubmissionFeedback.id, final: updatedSubmissionFeedback.final }); - if (updatedSubmissionFeedback.text) { - // text is only being set on create and on turing in, then we'll update the cache with it. Otherwise, we'll trust the local state, as to not overwrite the input field + if (updatedSubmissionFeedback.text !== undefined) { + // text is only being set on create and on turning in, then we'll update the cache with it. Otherwise, we'll trust the local state, as to not overwrite the input field data.studentSubmission.submissionFeedback.text = updatedSubmissionFeedback.text; + } else { + data.studentSubmission.submissionFeedback.text = this.studentSubmission.submissionFeedback ? this.studentSubmission.submissionFeedback.text : ''; } store.writeQuery({query, variables, data});