refactor(editor): Extract contextMenu into features (no-changelog) (#20582)

This commit is contained in:
Alex Grozav 2025-10-10 10:53:37 +03:00 committed by GitHub
parent c55f67e461
commit c2dd9f61b4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 1275 additions and 15 deletions

View File

@ -46,7 +46,7 @@ import { useNDVStore } from '@/stores/ndv.store';
import { useVueFlow } from '@vue-flow/core';
import ExperimentalFocusPanelHeader from '@/features/canvas/experimental/components/ExperimentalFocusPanelHeader.vue';
import { useTelemetryContext } from '@/composables/useTelemetryContext';
import { type ContextMenuAction } from '@/composables/useContextMenuItems';
import { type ContextMenuAction } from '@/features/ui/contextMenu/composables/useContextMenuItems';
import { type CanvasNode, CanvasNodeRenderType } from '@/features/canvas/canvas.types';
import { useCanvasOperations } from '@/composables/useCanvasOperations';

View File

@ -1,11 +1,11 @@
<script lang="ts" setup>
import ContextMenu from '@/components/ContextMenu/ContextMenu.vue';
import ContextMenu from '@/features/ui/contextMenu/components/ContextMenu.vue';
import type { ContextMenuTarget } from '@/features/ui/contextMenu/composables/useContextMenu';
import { useContextMenu } from '@/features/ui/contextMenu/composables/useContextMenu';
import type { CanvasLayoutEvent } from '../composables/useCanvasLayout';
import { useCanvasLayout } from '../composables/useCanvasLayout';
import { useCanvasNodeHover } from '../composables/useCanvasNodeHover';
import { useCanvasTraversal } from '../composables/useCanvasTraversal';
import type { ContextMenuTarget } from '@/composables/useContextMenu';
import { useContextMenu } from '@/composables/useContextMenu';
import { type KeyMap, useKeybindings } from '@/composables/useKeybindings';
import type { PinDataSource } from '@/composables/usePinnedData';
import { CanvasKey } from '@/constants';
@ -58,7 +58,7 @@ import CanvasControlButtons from './elements/buttons/CanvasControlButtons.vue';
import Edge from './elements/edges/CanvasEdge.vue';
import Node from './elements/nodes/CanvasNode.vue';
import { useExperimentalNdvStore } from '../experimental/experimentalNdv.store';
import { type ContextMenuAction } from '@/composables/useContextMenuItems';
import { type ContextMenuAction } from '@/features/ui/contextMenu/composables/useContextMenuItems';
const $style = useCssModule();

View File

@ -9,7 +9,7 @@ import { createEventBus } from '@n8n/utils/event-bus';
import type { CanvasEventBusEvents } from '../canvas.types';
import { useVueFlow } from '@vue-flow/core';
import { throttledRef } from '@vueuse/core';
import type { ContextMenuAction } from '@/composables/useContextMenuItems';
import type { ContextMenuAction } from '@/features/ui/contextMenu/composables/useContextMenuItems';
defineOptions({
inheritAttrs: false,

View File

@ -22,7 +22,7 @@ import CanvasNodeRenderer from './CanvasNodeRenderer.vue';
import CanvasHandleRenderer from '../handles/CanvasHandleRenderer.vue';
import { useNodeConnections } from '@/composables/useNodeConnections';
import { CanvasNodeKey } from '@/constants';
import { useContextMenu } from '@/composables/useContextMenu';
import { useContextMenu } from '@/features/ui/contextMenu/composables/useContextMenu';
import type { NodeProps, XYPosition } from '@vue-flow/core';
import { Position } from '@vue-flow/core';
import { useCanvas } from '../../../composables/useCanvas';

View File

@ -1,6 +1,9 @@
<script setup lang="ts">
import { useExpressionResolveCtx } from '@/features/canvas/experimental/composables/useExpressionResolveCtx';
import { type ContextMenuAction, useContextMenuItems } from '@/composables/useContextMenuItems';
import {
type ContextMenuAction,
useContextMenuItems,
} from '@/features/ui/contextMenu/composables/useContextMenuItems';
import { ExpressionLocalResolveContextSymbol } from '@/constants';
import { type INodeUi } from '@/Interface';
import { computed, provide, ref, watch } from 'vue';

View File

@ -1,6 +1,6 @@
<script lang="ts" setup>
import { useContextMenu } from '@/composables/useContextMenu';
import { type ContextMenuAction } from '@/composables/useContextMenuItems';
import { useContextMenu } from '../composables/useContextMenu';
import { type ContextMenuAction } from '../composables/useContextMenuItems';
import { useStyles } from '@/composables/useStyles';
import { ref, watch } from 'vue';
import { type ComponentExposed } from 'vue-component-type-helpers';

View File

@ -1,5 +1,5 @@
import type { INodeUi } from '@/Interface';
import { useContextMenu } from '@/composables/useContextMenu';
import { useContextMenu } from './useContextMenu';
import { BASIC_CHAIN_NODE_TYPE, NO_OP_NODE_TYPE, STICKY_NODE_TYPE } from '@/constants';
import { faker } from '@faker-js/faker';
import { createPinia, setActivePinia } from 'pinia';

View File

@ -1,7 +1,7 @@
import type { XYPosition } from '@/Interface';
import { useUIStore } from '@/stores/ui.store';
import { computed, ref, watch } from 'vue';
import { getMousePosition } from '../utils/nodeViewUtils';
import { getMousePosition } from '@/utils/nodeViewUtils';
import { useContextMenuItems, type ContextMenuAction } from './useContextMenuItems';
export type ContextMenuTarget =

View File

@ -9,8 +9,8 @@ import { getResourcePermissions } from '@n8n/permissions';
import type { INode, INodeTypeDescription, Workflow } from 'n8n-workflow';
import { NodeHelpers } from 'n8n-workflow';
import { computed, type ComputedRef } from 'vue';
import { isPresent } from '../utils/typesUtils';
import { usePinnedData } from './usePinnedData';
import { isPresent } from '@/utils/typesUtils';
import { usePinnedData } from '@/composables/usePinnedData';
export type ContextMenuAction =
| 'open'

View File

@ -135,7 +135,7 @@ import { useFocusPanelStore } from '@/stores/focusPanel.store';
import { useAITemplatesStarterCollectionStore } from '@/experiments/aiTemplatesStarterCollection/stores/aiTemplatesStarterCollection.store';
import { useReadyToRunWorkflowsStore } from '@/experiments/readyToRunWorkflows/stores/readyToRunWorkflows.store';
import { useKeybindings } from '@/composables/useKeybindings';
import { type ContextMenuAction } from '@/composables/useContextMenuItems';
import { type ContextMenuAction } from '@/features/ui/contextMenu/composables/useContextMenuItems';
import { useExperimentalNdvStore } from '@/features/canvas/experimental/experimentalNdv.store';
import { useWorkflowState } from '@/composables/useWorkflowState';
import { useParentFolder } from '@/features/folders/composables/useParentFolder';