balibabu commited on
Commit
480ea1f
·
1 Parent(s): 9bf7e7d

fix: Cannot copy and paste text on agent page #3356 (#3357)

Browse files

### What problem does this PR solve?

fix: Cannot copy and paste text on agent page #3356

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)

Files changed (1) hide show
  1. web/src/pages/flow/hooks.ts +6 -3
web/src/pages/flow/hooks.ts CHANGED
@@ -23,7 +23,7 @@ import { useDebounceEffect } from 'ahooks';
23
  import { FormInstance, message } from 'antd';
24
  import dayjs from 'dayjs';
25
  import { humanId } from 'human-id';
26
- import { lowerFirst } from 'lodash';
27
  import trim from 'lodash/trim';
28
  import { useTranslation } from 'react-i18next';
29
  import { useParams } from 'umi';
@@ -641,6 +641,8 @@ export const useCopyPaste = () => {
641
 
642
  const onCopyCapture = useCallback(
643
  (event: ClipboardEvent) => {
 
 
644
  event.preventDefault();
645
  const nodesStr = JSON.stringify(
646
  nodes.filter((n) => n.selected && n.data.label !== Operator.Begin),
@@ -653,11 +655,12 @@ export const useCopyPaste = () => {
653
 
654
  const onPasteCapture = useCallback(
655
  (event: ClipboardEvent) => {
656
- event.preventDefault();
657
  const nodes = JSON.parse(
658
  event.clipboardData?.getData('agent:nodes') || '[]',
659
  ) as Node[] | undefined;
660
- if (nodes) {
 
 
661
  nodes.forEach((n) => {
662
  duplicateNode(n.id, n.data.label);
663
  });
 
23
  import { FormInstance, message } from 'antd';
24
  import dayjs from 'dayjs';
25
  import { humanId } from 'human-id';
26
+ import { get, lowerFirst } from 'lodash';
27
  import trim from 'lodash/trim';
28
  import { useTranslation } from 'react-i18next';
29
  import { useParams } from 'umi';
 
641
 
642
  const onCopyCapture = useCallback(
643
  (event: ClipboardEvent) => {
644
+ if (get(event, 'srcElement.tagName') !== 'BODY') return;
645
+
646
  event.preventDefault();
647
  const nodesStr = JSON.stringify(
648
  nodes.filter((n) => n.selected && n.data.label !== Operator.Begin),
 
655
 
656
  const onPasteCapture = useCallback(
657
  (event: ClipboardEvent) => {
 
658
  const nodes = JSON.parse(
659
  event.clipboardData?.getData('agent:nodes') || '[]',
660
  ) as Node[] | undefined;
661
+
662
+ if (Array.isArray(nodes) && nodes.length) {
663
+ event.preventDefault();
664
  nodes.forEach((n) => {
665
  duplicateNode(n.id, n.data.label);
666
  });