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 (
} key="add" type="primary">
{intl.formatMessage({ id: "buttons.group.add.member" })}
);
};
export default AddMemeberWidget;