Fix chaching bug for submissions

This commit is contained in:
Lorenz Padberg 2024-03-27 12:47:17 +01:00
parent f1c27cf0e4
commit e8d7402349
1 changed files with 8 additions and 30 deletions

View File

@ -269,6 +269,7 @@ onResult(async () => {
assignment.value = {
...loadedAssignment,
};
// Bugfix: this nextTick is needed. Without it the submissions are not diplayed when loading the module page.
await nextTick();
assignment.value.submission = Object.assign(initialSubmission, assignment.value.submission);
@ -341,7 +342,7 @@ const reopen = () => {
},
});
};
const _save = debounce(function (submission) {
const _save = debounce(function () {
saving.value++;
const variables = {
input: {
@ -354,36 +355,13 @@ const _save = debounce(function (submission) {
};
doUpdateAssignmentWithSuccess(variables, {
update(
cache,
_cache,
{
data: {
updateAssignment: { successful, updatedAssignment },
updateAssignment: { _successful, _updatedAssignment },
},
}
) {
try {
if (successful) {
const id = cache.identify({
id: updatedAssignment.id,
__typename: updatedAssignment.__typename,
});
const fragment = assignmentFragment;
const fragmentName = 'AssignmentParts';
cache.writeFragment({
fragment,
fragmentName,
id,
data: {
...updatedAssignment,
submission,
},
});
}
} catch (e) {
console.error(e);
// Query did not exist in the cache, and apollo throws a generic Error. Do nothing
}
},
) {},
}).then(() => {
saving.value--;
if (saving.value === 0) {