import { useEffect, useState } from 'react'; import { Radio, Modal, Spin, Popover, Button } from 'antd'; import useSelectRole from './hook'; import style from './index.less'; import { FormattedMessage, useIntl } from 'umi'; import { reloadReactNode } from '../utils/jsxformat'; type SelectRoleProps = { appId: number; children?: React.ReactChildren; value?: API.RoleListItem; onChange?: (value: API.RoleListItem) => void; }; const SelectRole: React.FC = ({ appId, value, onChange, children }) => { const { roleList, loading } = useSelectRole({ appId, isAllowApply: 1 }); const { formatMessage } = useIntl(); const [open, setOpen] = useState(false); const [selectValue, setSelectValue] = useState(); const triggerRender = () => { const name = roleList?.find((item) => item.id === value?.id)?.name; return reloadReactNode( , setOpen, children, ); }; const closeModal = () => { setOpen(false); setSelectValue(undefined); }; useEffect(() => { if (open) { setSelectValue(value); } }, [value, open]); return ( <> } >
{roleList?.map((item) => { return ( { setSelectValue(item); }} > {item?.name} ); })}
{triggerRender()} ); }; export default SelectRole;