- import get from 'lodash/get';
 - import { useCallback, useMemo } from 'react';
 - import { v4 as uuid } from 'uuid';
 - import { IGenerateParameter } from '../interface';
 - import useGraphStore from '../store';
 - 
 - export const useHandleOperateParameters = (nodeId: string) => {
 -   const { getNode, updateNodeForm } = useGraphStore((state) => state);
 -   const node = getNode(nodeId);
 -   const dataSource: IGenerateParameter[] = useMemo(
 -     () => get(node, 'data.form.parameters', []) as IGenerateParameter[],
 -     [node],
 -   );
 - 
 -   const handleComponentIdChange = useCallback(
 -     (row: IGenerateParameter) => (value: string) => {
 -       const newData = [...dataSource];
 -       const index = newData.findIndex((item) => row.id === item.id);
 -       const item = newData[index];
 -       newData.splice(index, 1, {
 -         ...item,
 -         component_id: value,
 -       });
 - 
 -       updateNodeForm(nodeId, { parameters: newData });
 -     },
 -     [updateNodeForm, nodeId, dataSource],
 -   );
 - 
 -   const handleRemove = useCallback(
 -     (id?: string) => () => {
 -       const newData = dataSource.filter((item) => item.id !== id);
 -       updateNodeForm(nodeId, { parameters: newData });
 -     },
 -     [updateNodeForm, nodeId, dataSource],
 -   );
 - 
 -   const handleAdd = useCallback(() => {
 -     updateNodeForm(nodeId, {
 -       parameters: [
 -         ...dataSource,
 -         {
 -           id: uuid(),
 -           key: '',
 -           component_id: undefined,
 -         },
 -       ],
 -     });
 -   }, [dataSource, nodeId, updateNodeForm]);
 - 
 -   const handleSave = (row: IGenerateParameter) => {
 -     const newData = [...dataSource];
 -     const index = newData.findIndex((item) => row.id === item.id);
 -     const item = newData[index];
 -     newData.splice(index, 1, {
 -       ...item,
 -       ...row,
 -     });
 - 
 -     updateNodeForm(nodeId, { parameters: newData });
 -   };
 - 
 -   return {
 -     handleAdd,
 -     handleRemove,
 -     handleComponentIdChange,
 -     handleSave,
 -     dataSource,
 -   };
 - };
 
 
  |