import React, { useContext } from 'react'; import { Space, ConfigProvider } from 'antd'; import type { ProFieldFC } from '../../index'; const addArrayKeys = (doms: React.ReactNode[]) => doms.map((dom, index) => { if (!React.isValidElement(dom)) { // eslint-disable-next-line react/no-array-index-key return {dom}; } return React.cloneElement(dom, { // eslint-disable-next-line react/no-array-index-key key: index, ...dom?.props, }); }); /** * 一般用于放多个按钮 * * @param */ const FieldOptions: ProFieldFC<{}> = ({ text, mode: type, render, fieldProps }) => { const { getPrefixCls } = useContext(ConfigProvider.ConfigContext); const className = getPrefixCls('pro-field-option'); if (render) { const doms = render(text, { mode: type, ...fieldProps }, <>) as unknown as React.ReactNode[]; if (!doms || doms?.length < 1 || !Array.isArray(doms)) { return null; } return ( {addArrayKeys(doms)} ); } if (!text || !Array.isArray(text)) { if (!React.isValidElement(text)) { return null; } return text as JSX.Element; } return ( {addArrayKeys(text)} ); }; export default FieldOptions;