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..15934bdc426 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,12 +199,12 @@ 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 }, - markFileTemplatesInitialisedForGuests(state) { + markFileTemplatesInitialised(state) { state.fileTemplatesInitialised = true }, } @@ -547,18 +547,21 @@ 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 } 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) }