Fix slave token modal form validation

This commit is contained in:
Daniel authored and GitHub committed 2022-10-17 08:23:43 +00:00
1 parent 7bb33554f4
commit 4eb4bb9623
1 file changed
+9 -7
@@ -1,6 +1,6 @@
import React, { useContext, useRef, useState, useEffect } from "react";
import { useHistory } from "react-router-dom";
import { Button, Form, Input, Modal, PageHeader, Table, Tag, Typography } from "antd";
import { Button, Form, InputNumber, Modal, PageHeader, Table, Tag, Typography } from "antd";
import CopyOutlined from "@ant-design/icons/lib/icons/CopyOutlined";
import { libLink } from "@clusterio/lib";
@@ -21,7 +21,6 @@ function GenerateSlaveTokenButton(props) {
let [token, setToken] = useState(null);
let [slaveId, setSlaveId] = useState(null);
let [form] = Form.useForm();
let tokenTextAreaRef = useRef(null);
let [pluginList, setPluginList] = useState([]);
useEffect(() => {
(async () => {
@@ -36,19 +35,20 @@ function GenerateSlaveTokenButton(props) {
}, []);
async function generateToken() {
let id;
let values = form.getFieldsValue();
if (values.slaveId) {
slaveId = Number.parseInt(values.slaveId, 10);
if (Number.isNaN(slaveId)) {
id = Number.parseInt(values.slaveId, 10);
if (Number.isNaN(id)) {
form.setFields([{ name: "slaveId", errors: ["Must be an integer"] }]);
return;
}
form.setFields([{ name: "slaveId", errors: [] }]);
}
let result = await libLink.messages.generateSlaveToken.send(control, { slave_id: slaveId });
let result = await libLink.messages.generateSlaveToken.send(control, { slave_id: id || null });
setToken(result.token);
setSlaveId(slaveId);
setSlaveId(id);
}
// Generate a new random
@@ -77,7 +77,9 @@ function GenerateSlaveTokenButton(props) {
>
<Form form={form} layout="vertical" requiredMark="optional">
<Form.Item name="slaveId" label="Slave ID">
<Input onChange={() => { generateToken().catch(notifyErrorHandler("Error generating token")); }} />
<InputNumber onChange={() => {
generateToken().catch(notifyErrorHandler("Error generating token"));
}} />
</Form.Item>
</Form>
{token !== null && <>