Browse Source

删除冗余代码

feature/071
yun 6 days ago
parent
commit
7bbd6702de
  1. 16
      src/components/__tests__/BaseNode.test.tsx
  2. 7
      src/components/__tests__/SmartTextNode.test.tsx
  3. 10
      src/components/nodes/BaseNode.tsx

16
src/components/__tests__/BaseNode.test.tsx

@ -307,21 +307,5 @@ describe("BaseNode", () => {
expect(mockZoomNodeById).toHaveBeenCalledWith("test-node-1");
});
it("should skip generic node zoom inside explicitly handled double-click regions", () => {
render(
<TestWrapper>
<BaseNode
{...defaultProps}
children={<div data-testid="custom-double-click" data-skip-node-double-click-zoom>Custom</div>}
/>
</TestWrapper>
);
fireEvent.click(screen.getByTestId("custom-double-click"), { detail: 2 });
fireEvent.doubleClick(screen.getByTestId("custom-double-click"));
expect(mockZoomNodeById).not.toHaveBeenCalled();
});
});
});

7
src/components/__tests__/SmartTextNode.test.tsx

@ -3,11 +3,9 @@ import { act } from "react";
import { ReactFlowProvider } from "@xyflow/react";
import { beforeEach, describe, expect, it, vi } from "vitest";
import { SmartTextNode } from "@/components/nodes/SmartTextNode";
import { NodeDoubleClickZoomProvider } from "@/components/nodes/NodeDoubleClickZoomContext";
import { REQUEST_SMART_TEXT_EDIT_EVENT } from "@/utils/smartTextEditRequest";
const mockUpdateNodeData = vi.fn();
const mockZoomNodeById = vi.fn();
vi.mock("@/store/workflowStore", () => ({
useWorkflowStore: vi.fn((selector) => {
@ -34,9 +32,7 @@ vi.mock("@/hooks/useSelectedNodeCount", () => ({
function TestWrapper({ children }: { children: React.ReactNode }) {
return (
<ReactFlowProvider>
<NodeDoubleClickZoomProvider value={{ zoomNodeById: mockZoomNodeById }}>
{children}
</NodeDoubleClickZoomProvider>
{children}
</ReactFlowProvider>
);
}
@ -91,7 +87,6 @@ describe("SmartTextNode", () => {
}));
});
expect(mockZoomNodeById).not.toHaveBeenCalled();
const editor = await screen.findByRole("textbox", { name: /Write text content|编写文本内容|編寫文字內容|テキスト内容を書く/ });
await waitFor(() => expect(document.activeElement).toBe(editor));

10
src/components/nodes/BaseNode.tsx

@ -23,7 +23,6 @@ import { getEffectiveNodeHeaderModel, getNodeHeaderTitle } from "./nodeHeaderTit
import { REQUEST_SMART_TEXT_EDIT_EVENT } from "@/utils/smartTextEditRequest";
const DEFAULT_NODE_DIMENSION = 300;
const SKIP_NODE_DOUBLE_CLICK_ZOOM_SELECTOR = "[data-skip-node-double-click-zoom]";
interface BaseNodeProps {
id: string;
@ -308,10 +307,6 @@ export function BaseNode({
return;
}
if (target?.closest(SKIP_NODE_DOUBLE_CLICK_ZOOM_SELECTOR)) {
return;
}
const lastZoom = lastNodeDoubleClickZoomRef.current;
if (lastZoom && lastZoom.source !== source && now - lastZoom.at < 250) {
return;
@ -321,8 +316,9 @@ export function BaseNode({
event.preventDefault();
event.stopPropagation();
nodeDoubleClickZoom?.zoomNodeById(id);
if (node?.type === "smartText") {
nodeDoubleClickZoom?.zoomNodeById(id);
window.setTimeout(() => {
window.dispatchEvent(new CustomEvent(REQUEST_SMART_TEXT_EDIT_EVENT, {
detail: { nodeId: id },
@ -330,8 +326,6 @@ export function BaseNode({
}, 80);
return;
}
nodeDoubleClickZoom?.zoomNodeById(id);
};
const handleNodeClickCapture = (event: ReactMouseEvent<HTMLDivElement>) => {

Loading…
Cancel
Save