* ✨ 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, fixing 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 * ✨ Started migrating the `credentials` module to pinia * 👌 Addressing PR review comments * ✨ Migrated permissions module to pinia * ✨ Migrated `nodeCreator`, `tags` and `versions` modules to pinia * ✨ Implemented webhooks pinia store * ⚡ Removing all leftover vuex files and references * ✨ Removing final vuex refs * ⚡ Updating expected credentialId type * ⚡ Removing node credentials subscription code, reducing node click debounce timeout * 🐛 Fixing pushing nodes downstream when inserting new node * ✔️ Fixing a lint error in new type guard * ⚡ Updating helper reference * ✔️ Removing unnecessary awaits * ⚡ fix(editor): remove unnecessary imports from NDV * ⚡ Merging mapStores blocks in NodeView * ⚡ fix(editor): make sure JS Plumb not loaded earlier than needed * ⚡ Updating type guard nad credentials subscriptions * ⚡ Updating type guard so it doesn't use `any` type Co-authored-by: Csaba Tuncsik <csaba@n8n.io>
66 lines
1.9 KiB
TypeScript
66 lines
1.9 KiB
TypeScript
import { STORES } from "@/constants";
|
|
import { IFakeDoor, INodeUi, IRootState } from "@/Interface";
|
|
import { IMenuItem } from "n8n-design-system";
|
|
import { IWorkflowSettings } from "n8n-workflow";
|
|
import { defineStore } from "pinia";
|
|
import { useRootStore } from "./n8nRootStore";
|
|
import { useNDVStore } from "./ndv";
|
|
import { useSettingsStore } from "./settings";
|
|
import { useUIStore } from "./ui";
|
|
import { useUsersStore } from "./users";
|
|
import { useWorkflowsStore } from "./workflows";
|
|
|
|
export const useWebhooksStore = defineStore(STORES.WEBHOOKS, {
|
|
getters: {
|
|
globalRoleName(): string {
|
|
return useUsersStore().globalRoleName;
|
|
},
|
|
getFakeDoorFeatures () {
|
|
return useUIStore().fakeDoorFeatures;
|
|
},
|
|
isUserManagementEnabled () {
|
|
return useSettingsStore().isUserManagementEnabled;
|
|
},
|
|
getFakeDoorItems(): IFakeDoor[] {
|
|
return useUIStore().fakeDoorFeatures;
|
|
},
|
|
n8nMetadata(): IRootState['n8nMetadata'] {
|
|
return useRootStore().n8nMetadata;
|
|
},
|
|
instanceId(): string {
|
|
return useRootStore().instanceId;
|
|
},
|
|
workflowId(): string {
|
|
return useWorkflowsStore().workflowId;
|
|
},
|
|
workflowName(): string {
|
|
return useWorkflowsStore().workflowName;
|
|
},
|
|
activeNode(): INodeUi | null {
|
|
return useNDVStore().activeNode;
|
|
},
|
|
workflowSettings(): IWorkflowSettings {
|
|
return useWorkflowsStore().workflowSettings;
|
|
},
|
|
activeExecutionId(): string {
|
|
return useWorkflowsStore().activeExecutionId || '';
|
|
},
|
|
nodeByName: (state: IRootState) => (nodeName: string): INodeUi | null => {
|
|
return useWorkflowsStore().getNodeByName(nodeName);
|
|
},
|
|
allNodes(): INodeUi[] {
|
|
return useWorkflowsStore().allNodes;
|
|
},
|
|
},
|
|
actions: {
|
|
addSidebarMenuItems(menuItems: IMenuItem[]) {
|
|
const uiStore = useUIStore();
|
|
const updated = uiStore.sidebarMenuItems.concat(menuItems);
|
|
uiStore.sidebarMenuItems = updated;
|
|
},
|
|
setFakeDoorFeatures(fakeDoors: IFakeDoor[]): void {
|
|
useUIStore().fakeDoorFeatures = fakeDoors;
|
|
},
|
|
},
|
|
});
|