fix(editor): SettingsSidebar should disconnect from push when navigating away (#6025)

This commit is contained in:
कारतोफ्फेलस्क्रिप्ट™ 2023-04-20 12:23:17 +02:00 committed by GitHub
parent 4037b3aeed
commit 41660d9e28
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 6 deletions

View file

@ -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);

View file

@ -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 {