From b475c8f26aea9c108a8ea29826619925516c372f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=A4=95=E0=A4=BE=E0=A4=B0=E0=A4=A4=E0=A5=8B=E0=A4=AB?= =?UTF-8?q?=E0=A5=8D=E0=A4=AB=E0=A5=87=E0=A4=B2=E0=A4=B8=E0=A5=8D=E0=A4=95?= =?UTF-8?q?=E0=A5=8D=E0=A4=B0=E0=A4=BF=E0=A4=AA=E0=A5=8D=E0=A4=9F=E2=84=A2?= Date: Thu, 20 Apr 2023 12:23:17 +0200 Subject: [PATCH] fix(editor): SettingsSidebar should disconnect from push when navigating away (#6025) --- packages/editor-ui/src/components/SettingsSidebar.vue | 6 +----- .../editor-ui/src/views/SettingsCommunityNodesView.vue | 9 ++++++++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/editor-ui/src/components/SettingsSidebar.vue b/packages/editor-ui/src/components/SettingsSidebar.vue index bd9c380a1ad28..8a8a1c18d3098 100644 --- a/packages/editor-ui/src/components/SettingsSidebar.vue +++ b/packages/editor-ui/src/components/SettingsSidebar.vue @@ -24,7 +24,6 @@ import mixins from 'vue-typed-mixins'; import { ABOUT_MODAL_KEY, VERSIONS_MODAL_KEY, VIEWS } from '@/constants'; import { userHelpers } from '@/mixins/userHelpers'; -import { pushConnection } from '@/mixins/pushConnection'; import { IFakeDoor } from '@/Interface'; import { IMenuItem } from 'n8n-design-system'; import { BaseTextKey } from '@/plugins/i18n'; @@ -33,7 +32,7 @@ import { useUIStore } from '@/stores/ui'; import { useSettingsStore } from '@/stores/settings'; import { useRootStore } from '@/stores/n8nRootStore'; -export default mixins(userHelpers, pushConnection).extend({ +export default mixins(userHelpers).extend({ name: 'SettingsSidebar', computed: { ...mapStores(useRootStore, useSettingsStore, useUIStore), @@ -126,9 +125,6 @@ export default mixins(userHelpers, pushConnection).extend({ return menuItems; }, }, - mounted() { - this.pushConnect(); - }, methods: { canAccessPersonalSettings(): boolean { return this.canUserAccessRouteByName(VIEWS.PERSONAL_SETTINGS); diff --git a/packages/editor-ui/src/views/SettingsCommunityNodesView.vue b/packages/editor-ui/src/views/SettingsCommunityNodesView.vue index d67426dd9b558..c6e4dbfd6d9c4 100644 --- a/packages/editor-ui/src/views/SettingsCommunityNodesView.vue +++ b/packages/editor-ui/src/views/SettingsCommunityNodesView.vue @@ -59,6 +59,7 @@ import { } from '@/constants'; import CommunityPackageCard from '@/components/CommunityPackageCard.vue'; import { showMessage } from '@/mixins/showMessage'; +import { pushConnection } from '@/mixins/pushConnection'; import mixins from 'vue-typed-mixins'; import { PublicInstalledPackage } from 'n8n-workflow'; @@ -70,7 +71,7 @@ import { BaseTextKey } from '@/plugins/i18n'; const PACKAGE_COUNT_THRESHOLD = 31; -export default mixins(showMessage).extend({ +export default mixins(showMessage, pushConnection).extend({ name: 'SettingsCommunityNodesView', components: { CommunityPackageCard, @@ -81,6 +82,9 @@ export default mixins(showMessage).extend({ }; }, async mounted() { + // The push connection is needed here to receive `reloadNodeType` and `removeNodeType` events when community nodes are installed, updated, or removed. + this.pushConnect(); + try { this.$data.loading = true; await this.communityNodesStore.fetchInstalledPackages(); @@ -124,6 +128,9 @@ export default mixins(showMessage).extend({ this.$data.loading = false; } }, + beforeDestroy() { + this.pushDisconnect(); + }, computed: { ...mapStores(useCommunityNodesStore, useSettingsStore, useUIStore), getEmptyStateDescription(): string {