From ad7223eef21acecb19eac82634a962221724a5ee Mon Sep 17 00:00:00 2001 From: yyh Date: Sun, 9 Aug 2026 13:55:30 +0800 Subject: [PATCH] refactor(web): keep copy id events on the button --- oxlint-suppressions.json | 16 ---------------- .../components/__tests__/copy-id.spec.tsx | 19 ++++++++++++------- .../nodes/tool/components/copy-id.tsx | 11 +++++------ 3 files changed, 17 insertions(+), 29 deletions(-) diff --git a/oxlint-suppressions.json b/oxlint-suppressions.json index c0b968118fccd1..9f0b97a81cb230 100644 --- a/oxlint-suppressions.json +++ b/oxlint-suppressions.json @@ -4890,22 +4890,6 @@ "count": 5 } }, - "web/app/components/workflow/nodes/tool/components/__tests__/copy-id.spec.tsx": { - "jsx_a11y/click-events-have-key-events": { - "count": 1 - }, - "jsx_a11y/no-static-element-interactions": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/tool/components/copy-id.tsx": { - "jsx_a11y/click-events-have-key-events": { - "count": 1 - }, - "jsx_a11y/no-static-element-interactions": { - "count": 1 - } - }, "web/app/components/workflow/nodes/tool/components/mixed-variable-text-input/index.tsx": { "typescript/no-explicit-any": { "count": 1 diff --git a/web/app/components/workflow/nodes/tool/components/__tests__/copy-id.spec.tsx b/web/app/components/workflow/nodes/tool/components/__tests__/copy-id.spec.tsx index 6d1b5455981bd7..de88d76daf9779 100644 --- a/web/app/components/workflow/nodes/tool/components/__tests__/copy-id.spec.tsx +++ b/web/app/components/workflow/nodes/tool/components/__tests__/copy-id.spec.tsx @@ -39,15 +39,20 @@ describe('tool/copy-id', () => { expect(trigger).toHaveAccessibleName('appOverview.overview.appInfo.embedded.copy') }) - it('should stop click propagation from the outer wrapper', () => { + it('should stop click propagation from the copy button', () => { const handleParentClick = vi.fn() - const { container } = render( -
- -
, - ) + render() + document.body.addEventListener('click', handleParentClick) - fireEvent.click(container.querySelector('.inline-flex') as HTMLElement) + act(() => { + fireEvent.click( + screen.getByRole('button', { + name: 'appOverview.overview.appInfo.embedded.copy', + }), + ) + vi.advanceTimersByTime(100) + }) + document.body.removeEventListener('click', handleParentClick) expect(handleParentClick).not.toHaveBeenCalled() }) diff --git a/web/app/components/workflow/nodes/tool/components/copy-id.tsx b/web/app/components/workflow/nodes/tool/components/copy-id.tsx index 999bc7dff494b1..69673d62496c86 100644 --- a/web/app/components/workflow/nodes/tool/components/copy-id.tsx +++ b/web/app/components/workflow/nodes/tool/components/copy-id.tsx @@ -30,11 +30,7 @@ const CopyFeedbackNew = ({ content }: Props) => { : t(($) => $[`${prefixEmbedded}.copy`], { ns: 'appOverview' })) || '' return ( -
e.stopPropagation()} - onMouseLeave={onMouseLeave} - > +
{ type="button" aria-label={tooltip} className="group/copy flex w-full items-center gap-0.5 text-left" - onClick={onClickCopy} + onClick={(event) => { + event.stopPropagation() + onClickCopy() + }} > {content}