import { Form, Modal, Select, message } from 'antd' import React, { memo, useCallback } from 'react' import useBearStore from '@/stores' import { relyOnKeysPrintOperation } from '@/utils/relyOnKeysPrintOperation' import type { GetWorkspaceGqlFileInfoReturnType } from '../operation-doc' import type { OperationDefinitionNodeGroupType } from '@fruits-chain/qiufen-pro-helpers' import type { FC } from 'react' interface IProps { isModalOpen: boolean onCancel: () => void operationDefNode: OperationDefinitionNodeGroupType filteredWorkspaceGqlFileInfo: GetWorkspaceGqlFileInfoReturnType[] selectedKeys: string[] } const InSetModal: FC = ({ filteredWorkspaceGqlFileInfo, operationDefNode, selectedKeys, isModalOpen, onCancel, }) => { const { isAllAddComment } = useBearStore(ste => ste) const [form] = Form.useForm() const onOk = useCallback(() => { form.validateFields().then(async res => { let operationStr: string | undefined try { operationStr = await relyOnKeysPrintOperation( operationDefNode, selectedKeys, isAllAddComment, ) } catch (error) { message.error(error) } if (operationStr) { const { filenameList } = res const info = filteredWorkspaceGqlFileInfo.filter(itm => filenameList.includes(itm.filename), ) // TODO: 查看参数 多少kb // const json = JSON.stringify({ info, gql: operationStr }) // const byteSize = new Blob([json]).size // const sizeInKB = byteSize / 1024 // console.log(`请求参数大小:${sizeInKB.toFixed(2)} KB`) fetch('/multiple', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ info, gql: operationStr }), }) .then(response => response.json()) .then(data => { message.success(data.message) }) .catch(error => { message.error(error.message) }) .finally(() => { onCancel() }) } }) }, [ filteredWorkspaceGqlFileInfo, form, isAllAddComment, onCancel, operationDefNode, selectedKeys, ]) return (