diff --git a/packages/editor-ui/src/components/SettingsSidebar.vue b/packages/editor-ui/src/components/SettingsSidebar.vue index 8b4676b9eb696..eb3c3628fb927 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), @@ -134,9 +133,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 {