refactor(editor): Migrate part of the vuex store to pinia (#4484)

*  Added pinia support. Migrated community nodes module.
*  Added ui pinia store, moved some data from root store to it, updated modals to work with pinia stores
*  Added ui pinia store and migrated a part of the root store
*  Migrated `settings` store to pinia
*  Removing vuex store refs from router
*  Migrated `users` module to pinia store
*  Fixing errors after sync with master
*  One more error after merge
*  Created `workflows` pinia store. Moved large part of root store to it. Started updating references.
*  Finished migrating workflows store to pinia
*  Renaming some getters and actions to make more sense
*  Finished migrating the root store to pinia
*  Migrated ndv store to pinia
*  Renaming main panel dimensions getter so it doesn't clash with data prop name
* ✔️ Fixing lint errors
*  Migrated `templates` store to pinia
*  Migrated the `nodeTypes`store
*  Removed unused pieces of code and oold vuex modules
*  Adding vuex calls to pinia store, fi	xing wrong references
* 💄 Removing leftover $store refs
*  Added legacy getters and mutations to store to support webhooks
*  Added missing front-end hooks, updated vuex state subscriptions to pinia
* ✔️ Fixing linting errors
*  Removing vue composition api plugin
*  Fixing main sidebar state when loading node view
* 🐛 Fixing an error when activating workflows
* 🐛 Fixing isses with workflow settings and executions auto-refresh
* 🐛 Removing duplicate listeners which cause import error
* 🐛 Fixing route authentication
*  Updating freshly pulled $store refs
* Adding deleted const
*  Updating store references in ee features. Reseting NodeView credentials update flag when resetting workspace
*  Adding return type to email submission modal
*  Making NodeView only react to paste event when active
* 🐛 Fixing signup view errors
* 👌 Addressing PR review comments
* 👌 Addressing new PR comments
* 👌 Updating invite id logic in signup view
This commit is contained in:
Milorad FIlipović
2022-11-04 14:04:31 +01:00
committed by GitHub
parent c2c7927414
commit 40e413d958
160 changed files with 5141 additions and 4378 deletions

View File

@@ -24,12 +24,12 @@ import TemplatesWorkflowView from '@/views/TemplatesWorkflowView.vue';
import TemplatesSearchView from '@/views/TemplatesSearchView.vue';
import CredentialsView from '@/views/CredentialsView.vue';
import WorkflowsView from '@/views/WorkflowsView.vue';
import { Store } from 'vuex';
import { IPermissions, IRootState } from './Interface';
import { IPermissions } from './Interface';
import { LOGIN_STATUS, ROLE } from './modules/userHelpers';
import { RouteConfigSingleView } from 'vue-router/types/router';
import { VIEWS } from './constants';
import { store } from './store';
import { useSettingsStore } from './stores/settings';
import { useTemplatesStore } from './stores/templates';
Vue.use(Router);
@@ -37,18 +37,19 @@ interface IRouteConfig extends RouteConfigSingleView {
meta: {
nodeView?: boolean;
templatesEnabled?: boolean;
getRedirect?: (store: Store<IRootState>) => {name: string} | false;
getRedirect?: () => {name: string} | false;
permissions: IPermissions;
telemetry?: {
disabled?: true;
getProperties: (route: Route, store: Store<IRootState>) => object;
getProperties: (route: Route) => object;
};
scrollOffset?: number;
};
}
function getTemplatesRedirect(store: Store<IRootState>) {
const isTemplatesEnabled: boolean = store.getters['settings/isTemplatesEnabled'];
function getTemplatesRedirect() {
const settingsStore = useSettingsStore();
const isTemplatesEnabled: boolean = settingsStore.isTemplatesEnabled;
if (!isTemplatesEnabled) {
return {name: VIEWS.NOT_FOUND};
}
@@ -71,9 +72,8 @@ const router = new Router({
path: '/',
name: VIEWS.HOMEPAGE,
meta: {
getRedirect(store: Store<IRootState>) {
getRedirect() {
const startOnNewWorkflowRouteFlag = window.posthog?.isFeatureEnabled?.('start-at-wf-empty-state');
return { name: startOnNewWorkflowRouteFlag ? VIEWS.NEW_WORKFLOW : VIEWS.WORKFLOWS };
},
permissions: {
@@ -93,10 +93,11 @@ const router = new Router({
meta: {
templatesEnabled: true,
telemetry: {
getProperties(route: Route, store: Store<IRootState>) {
getProperties(route: Route) {
const templatesStore = useTemplatesStore();
return {
collection_id: route.params.id,
wf_template_repo_session_id: store.getters['templates/currentSessionId'],
wf_template_repo_session_id: templatesStore.currentSessionId,
};
},
},
@@ -136,10 +137,11 @@ const router = new Router({
templatesEnabled: true,
getRedirect: getTemplatesRedirect,
telemetry: {
getProperties(route: Route, store: Store<IRootState>) {
getProperties(route: Route) {
const templatesStore = useTemplatesStore();
return {
template_id: route.params.id,
wf_template_repo_session_id: store.getters['templates/currentSessionId'],
wf_template_repo_session_id: templatesStore.currentSessionId,
};
},
},
@@ -163,9 +165,10 @@ const router = new Router({
// Templates view remembers it's scroll position on back
scrollOffset: 0,
telemetry: {
getProperties(route: Route, store: Store<IRootState>) {
getProperties(route: Route) {
const templatesStore = useTemplatesStore();
return {
wf_template_repo_session_id: store.getters['templates/currentSessionId'],
wf_template_repo_session_id: templatesStore.currentSessionId,
};
},
},
@@ -378,7 +381,8 @@ const router = new Router({
},
deny: {
shouldDeny: () => {
return store.getters['settings/isUserManagementEnabled'] === false;
const settingsStore = useSettingsStore();
return settingsStore.isUserManagementEnabled === false;
},
},
},
@@ -431,7 +435,7 @@ const router = new Router({
meta: {
telemetry: {
pageCategory: 'settings',
getProperties(route: Route, store: Store<IRootState>) {
getProperties(route: Route) {
return {
feature: 'users',
};
@@ -443,7 +447,8 @@ const router = new Router({
},
deny: {
shouldDeny: () => {
return store.getters['settings/isUserManagementEnabled'] === false;
const settingsStore = useSettingsStore();
return settingsStore.isUserManagementEnabled === false;
},
},
},
@@ -458,7 +463,7 @@ const router = new Router({
meta: {
telemetry: {
pageCategory: 'settings',
getProperties(route: Route, store: Store<IRootState>) {
getProperties(route: Route) {
return {
feature: 'personal',
};
@@ -483,7 +488,7 @@ const router = new Router({
meta: {
telemetry: {
pageCategory: 'settings',
getProperties(route: Route, store: Store<IRootState>) {
getProperties(route: Route) {
return {
feature: 'api',
};
@@ -495,7 +500,8 @@ const router = new Router({
},
deny: {
shouldDeny: () => {
return store.getters['settings/isPublicApiEnabled'] === false;
const settingsStore = useSettingsStore();
return settingsStore.isPublicApiEnabled === false;
},
},
},
@@ -517,7 +523,8 @@ const router = new Router({
},
deny: {
shouldDeny: () => {
return store.getters['settings/isCommunityNodesFeatureEnabled'] === false;
const settingsStore = useSettingsStore();
return settingsStore.isCommunityNodesFeatureEnabled === false;
},
},
},
@@ -531,7 +538,7 @@ const router = new Router({
meta: {
telemetry: {
pageCategory: 'settings',
getProperties(route: Route, store: Store<IRootState>) {
getProperties(route: Route) {
return {
feature: route.params['featureId'],
};