From 34d7ce88fb1209358a966f01ad3fe07df59cc270 Mon Sep 17 00:00:00 2001 From: Grigory Vodyanov Date: Thu, 12 Sep 2024 17:32:11 +0200 Subject: [PATCH] chore: migrate the main store to pinia Signed-off-by: Grigory Vodyanov Signed-off-by: Richard Steinmetz # Conflicts: # src/components/ThreadEnvelope.vue # src/main.js # src/store/getters.js # src/store/index.js # src/store/mutations.js --- package-lock.json | 61 +- package.json | 3 +- src/App.vue | 18 +- src/components/AccountDefaultsSettings.vue | 27 +- src/components/AccountForm.vue | 16 +- src/components/AccountSettings.vue | 5 +- src/components/AliasSettings.vue | 9 +- src/components/AppSettingsMenu.vue | 100 +- src/components/CertificateSettings.vue | 10 +- src/components/Composer.vue | 24 +- src/components/ComposerSessionIndicator.vue | 8 +- src/components/DeleteTagModal.vue | 10 +- src/components/EditorSettings.vue | 18 +- src/components/Envelope.vue | 44 +- src/components/EnvelopeList.vue | 35 +- src/components/Imip.vue | 5 +- src/components/InternalAddress.vue | 9 +- src/components/Mailbox.vue | 27 +- src/components/MailboxInlinePicker.vue | 8 +- src/components/MailboxPicker.vue | 7 +- src/components/MailboxThread.vue | 42 +- src/components/MdnRequest.vue | 6 +- src/components/MenuEnvelope.vue | 34 +- src/components/Message.vue | 5 +- src/components/MoveMailboxModal.vue | 11 +- src/components/MoveModal.vue | 11 +- src/components/Navigation.vue | 23 +- src/components/NavigationAccount.vue | 33 +- .../NavigationAccountExpandCollapse.vue | 16 +- src/components/NavigationMailbox.vue | 34 +- src/components/NewMessageButtonHeader.vue | 9 +- src/components/NewMessageModal.vue | 45 +- src/components/OutOfOfficeForm.vue | 9 +- src/components/OutboxMessageListItem.vue | 2 +- src/components/RecipientInfo.vue | 5 +- src/components/RecipientListItem.vue | 10 +- src/components/SearchMessages.vue | 9 +- src/components/SearchSettings.vue | 18 +- src/components/SieveAccountForm.vue | 10 +- src/components/SieveFilterForm.vue | 8 +- src/components/SignatureSettings.vue | 19 +- src/components/TagItem.vue | 15 +- src/components/TagModal.vue | 13 +- src/components/TaskModal.vue | 9 +- src/components/Thread.vue | 15 +- src/components/ThreadEnvelope.vue | 45 +- src/components/TranslationModal.vue | 9 +- src/components/TrashRetentionSettings.vue | 7 +- src/components/mailFilter/ActionFileinto.vue | 6 +- src/components/mailFilter/MailFilters.vue | 9 +- .../smime/SmimeCertificateModal.vue | 12 +- .../droppable-mailbox/droppable-mailbox.js | 9 +- src/http/sessionExpiryHandler.js | 7 +- src/init.js | 134 + src/main.js | 128 - src/service/translationService.js | 7 +- src/store/actions.js | 1545 ----------- src/store/getters.js | 166 -- src/store/index.js | 121 - src/store/mainStore.js | 115 + src/store/mainStore/actions.js | 2380 +++++++++++++++++ src/store/mainStore/getters.js | 64 + src/store/mutations.js | 531 ---- src/store/outboxStore.js | 9 +- src/tests/unit/App.spec.js | 20 +- .../unit/components/AccountForm.vue.spec.js | 24 +- .../unit/components/Composer.vue.spec.js | 38 +- .../components/ConfirmationModal.vue.spec.js | 2 - .../unit/components/Envelope.vue.spec.js | 164 +- .../unit/components/EventModal.vue.spec.js | 1 - .../components/NavigationMailbox.vue.spec.js | 56 +- .../unit/components/PickerPlugin.vue.spec.js | 34 +- .../components/SignatureSettings.vue.spec.js | 2 - src/tests/unit/components/TextEditor.spec.js | 2 - src/tests/unit/components/Thread.vue.spec.js | 354 ++- .../components/ThreadEnvelope.vue.spec.js | 36 +- .../unit/http/sessionExpiryHandler.spec.js | 81 +- src/tests/unit/store/actions.spec.js | 689 ++--- src/tests/unit/store/getters.spec.js | 139 +- src/tests/unit/store/mutations.spec.js | 300 +-- src/{store => util}/calendar.js | 0 src/{store => util}/normalization.js | 0 src/views/Home.vue | 22 +- src/views/Setup.vue | 5 +- 84 files changed, 4223 insertions(+), 3905 deletions(-) create mode 100644 src/init.js delete mode 100644 src/store/actions.js delete mode 100644 src/store/getters.js delete mode 100644 src/store/index.js create mode 100644 src/store/mainStore.js create mode 100644 src/store/mainStore/actions.js create mode 100644 src/store/mainStore/getters.js delete mode 100644 src/store/mutations.js rename src/{store => util}/calendar.js (100%) rename src/{store => util}/normalization.js (100%) diff --git a/package-lock.json b/package-lock.json index f9c68eb604..33ada20cad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,6 +45,7 @@ "@nextcloud/paths": "^2.2.1", "@nextcloud/router": "^3.0.1", "@nextcloud/vue": "^8.20.0", + "@pinia/testing": "^0.1.6", "@riophae/vue-treeselect": "^0.4.0", "@vue/babel-preset-app": "^5.0.8", "address-rfc2822": "^2.2.2", @@ -81,8 +82,6 @@ "vue-scroll": "^2.1.13", "vue-shortkey": "^3.1.7", "vue-tabs-component": "^1.5.0", - "vuex": "^3.6.2", - "vuex-router-sync": "^5.0.0", "webdav": "4.11.4" }, "devDependencies": { @@ -5085,6 +5084,47 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/@pinia/testing": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/@pinia/testing/-/testing-0.1.7.tgz", + "integrity": "sha512-xcDq6Ry/kNhZ5bsUMl7DeoFXwdume1NYzDggCiDUDKoPQ6Mo0eH9VU7bJvBtlurqe6byAntWoX5IhVFqWzRz/Q==", + "license": "MIT", + "dependencies": { + "vue-demi": "^0.14.10" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "pinia": ">=2.2.6" + } + }, + "node_modules/@pinia/testing/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -19922,23 +19962,6 @@ "vue": "^2.5.0" } }, - "node_modules/vuex": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.6.2.tgz", - "integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==", - "peerDependencies": { - "vue": "^2.0.0" - } - }, - "node_modules/vuex-router-sync": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vuex-router-sync/-/vuex-router-sync-5.0.0.tgz", - "integrity": "sha512-Mry2sO4kiAG64714X1CFpTA/shUH1DmkZ26DFDtwoM/yyx6OtMrc+MxrU+7vvbNLO9LSpgwkiJ8W+rlmRtsM+w==", - "peerDependencies": { - "vue-router": "^3.0.0", - "vuex": "^3.0.0" - } - }, "node_modules/w3c-xmlserializer": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", diff --git a/package.json b/package.json index c080a8cee4..61c6961081 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ "@nextcloud/paths": "^2.2.1", "@nextcloud/router": "^3.0.1", "@nextcloud/vue": "^8.20.0", + "@pinia/testing": "^0.1.6", "@riophae/vue-treeselect": "^0.4.0", "@vue/babel-preset-app": "^5.0.8", "address-rfc2822": "^2.2.2", @@ -87,8 +88,6 @@ "vue-scroll": "^2.1.13", "vue-shortkey": "^3.1.7", "vue-tabs-component": "^1.5.0", - "vuex": "^3.6.2", - "vuex-router-sync": "^5.0.0", "webdav": "4.11.4" }, "browserslist": [ diff --git a/src/App.vue b/src/App.vue index 99644e408b..d321538c83 100644 --- a/src/App.vue +++ b/src/App.vue @@ -8,22 +8,25 @@