From 8009229e120905f2efa38524a7de04c27f46b58a Mon Sep 17 00:00:00 2001 From: Antreesy Date: Mon, 2 Sep 2024 12:28:03 +0200 Subject: [PATCH 1/2] fix(upload): don't create template duplicates in store Signed-off-by: Antreesy --- src/components/NewMessage/NewMessageAttachments.vue | 2 +- src/components/NewMessage/NewMessageNewFileDialog.vue | 2 +- src/store/fileUploadStore.js | 11 ++++------- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/components/NewMessage/NewMessageAttachments.vue b/src/components/NewMessage/NewMessageAttachments.vue index 42a9975042c..1e5b543e009 100644 --- a/src/components/NewMessage/NewMessageAttachments.vue +++ b/src/components/NewMessage/NewMessageAttachments.vue @@ -135,7 +135,7 @@ export default { computed: { fileTemplateOptions() { - return this.$store.getters.getFileTemplates() + return this.$store.getters.fileTemplates }, shareFromNextcloudLabel() { diff --git a/src/components/NewMessage/NewMessageNewFileDialog.vue b/src/components/NewMessage/NewMessageNewFileDialog.vue index 62dfe20c964..74be79003df 100644 --- a/src/components/NewMessage/NewMessageNewFileDialog.vue +++ b/src/components/NewMessage/NewMessageNewFileDialog.vue @@ -110,7 +110,7 @@ export default { computed: { fileTemplateOptions() { - return this.$store.getters.getFileTemplates() + return this.$store.getters.fileTemplates }, fileTemplate() { diff --git a/src/store/fileUploadStore.js b/src/store/fileUploadStore.js index 602fe628b93..aa7e86ea7d9 100644 --- a/src/store/fileUploadStore.js +++ b/src/store/fileUploadStore.js @@ -102,7 +102,7 @@ const getters = { return state.fileTemplatesInitialised }, - getFileTemplates: (state) => () => { + fileTemplates: (state) => { return state.fileTemplates }, } @@ -199,8 +199,8 @@ const mutations = { Vue.delete(state.uploads, uploadId) }, - storeFilesTemplates(state, { template }) { - state.fileTemplates.push(template) + storeFilesTemplates(state, templates) { + Vue.set(state, 'fileTemplates', templates) state.fileTemplatesInitialised = true }, @@ -555,10 +555,7 @@ const actions = { try { const response = await getFileTemplates() - - response.data.ocs.data.forEach(template => { - commit('storeFilesTemplates', { template }) - }) + commit('storeFilesTemplates', response.data.ocs.data) } catch (error) { console.error('An error happened when trying to load the templates', error) } From 1b5baf786443e5450f5a7765c2670c28689d8dbe Mon Sep 17 00:00:00 2001 From: Antreesy Date: Mon, 2 Sep 2024 12:28:46 +0200 Subject: [PATCH 2/2] fix(upload): don't initiate new server request for templates Signed-off-by: Antreesy --- src/store/fileUploadStore.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/store/fileUploadStore.js b/src/store/fileUploadStore.js index aa7e86ea7d9..15934bdc426 100644 --- a/src/store/fileUploadStore.js +++ b/src/store/fileUploadStore.js @@ -204,7 +204,7 @@ const mutations = { state.fileTemplatesInitialised = true }, - markFileTemplatesInitialisedForGuests(state) { + markFileTemplatesInitialised(state) { state.fileTemplatesInitialised = true }, } @@ -547,9 +547,15 @@ const actions = { }, async getFileTemplates({ commit, getters }) { + if (getters.fileTemplates.length) { + console.debug('Skip file templates setup as already done') + commit('markFileTemplatesInitialised') + return + } + if (getters.getUserId() === null) { console.debug('Skip file templates setup for participants that are not logged in') - commit('markFileTemplatesInitialisedForGuests') + commit('markFileTemplatesInitialised') return }