import { useIntl } from "react-intl"; import { ProForm, ProFormSelect } from "@ant-design/pro-components"; import { Button, message, Popover } from "antd"; import { UserAddOutlined } from "@ant-design/icons"; import { get, post } from "../../request"; import type { IUserListResponse } from "../../api/Auth"; import { useState } from "react"; import type { ICourseMemberData, ICourseMemberResponse, TCourseRole, } from "../../api/Course"; interface IFormData { userId: string; role: TCourseRole; } interface IWidget { courseId?: string; onCreated?: Function; } const AddMemeberWidget = ({ courseId, onCreated }: IWidget) => { const intl = useIntl(); const [open, setOpen] = useState(false); const form = ( onFinish={async (values: IFormData) => { console.log(values); if (typeof courseId !== "undefined") { const url = "/v2/course-member"; const data: ICourseMemberData = { user_id: values.userId, role: values.role, course_id: courseId, status: "invited", }; console.info("api request", url, data); post(url, data).then( (json) => { console.log("add member", json); if (json.ok) { message.success(intl.formatMessage({ id: "flashes.success" })); setOpen(false); if (typeof onCreated !== "undefined") { onCreated(); } } } ); } }} > { console.log("keyWord", keyWords); const json = await get( `/v2/user?view=key&key=${keyWords}` ); const userList = json.data.rows.map((item) => { return { value: item.id, label: `${item.userName}-${item.nickName}`, }; }); console.log("json", userList); return userList; }} placeholder={intl.formatMessage({ id: "forms.message.user.required", })} rules={[ { required: true, message: intl.formatMessage({ id: "forms.message.user.required", }), }, ]} /> ); const handleClickChange = (open: boolean) => { setOpen(open); }; return ( ); }; export default AddMemeberWidget;