import React, { useContext, useEffect } from "react"; import { Modal, Form, Select } from "antd"; import { ControlContext, useUsers } from "@clusterio/web_ui"; import * as messages from "../../messages"; import type { WebPlugin } from ".."; export default function AssignmentForm({ open, setOpen, initial }: { open: boolean, setOpen: (open: boolean) => void, initial?: messages.AssignmentRecord, }) { const control = useContext(ControlContext); const plugin = control.plugins.get("exp_groups") as WebPlugin; const [groups] = plugin.useGroups(); const [users] = useUsers(); const [form] = Form.useForm(); function submit(values: any) { if (initial) { control.send(new messages.AssignmentUpdateRequest( new messages.AssignmentRecord( values.name, values.groupId, ) )); } else { control.send(new messages.AssignmentCreateRequest( values.name, values.groupId, )); } setOpen(false); } useEffect(() => { if (open) { form.resetFields(); form.setFieldsValue(initial); } }, [open, initial]); return setOpen(false)} onOk={() => form.submit()} >
; }