feat: remove state and let rust handle
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { useState, useRef } from 'react';
|
||||
import { DSP, DSP_DEFAULT_PARAMETERS, DSPTypes } from '../../types';
|
||||
import { DSP_DEFAULT_PARAMETERS, DSPTypes } from '../../types';
|
||||
import Button from '../../components/Button/Button';
|
||||
import Card from '../../components/Card/Card';
|
||||
import ChoiceStepper from '../../components/ChoiceStepper/ChoiceStepper';
|
||||
@@ -37,7 +37,7 @@ function AddDSPForm({
|
||||
onAdd,
|
||||
}: {
|
||||
onCancel: () => void;
|
||||
onAdd: (dsp: Omit<DSP, 'status' | 'id' | 'state' | 'meters' | 'pollingPaused'>) => void;
|
||||
onAdd: (params: DSPForm) => void;
|
||||
}) {
|
||||
const [form, setForm] = useState<DSPForm>({
|
||||
name: '',
|
||||
@@ -60,39 +60,37 @@ function AddDSPForm({
|
||||
form.deviceId <= 255;
|
||||
|
||||
function validateIp() {
|
||||
if (form.demo) return;
|
||||
if (form.demo) return;
|
||||
|
||||
const ip = form.ip.trim();
|
||||
const ip = form.ip.trim();
|
||||
|
||||
if (isValidIPv4(ip)) {
|
||||
lastValidIp.current = ip;
|
||||
if (isValidIPv4(ip)) {
|
||||
lastValidIp.current = ip;
|
||||
|
||||
if (ip !== form.ip) {
|
||||
setForm((prev) => ({ ...prev, ip }));
|
||||
if (ip !== form.ip) {
|
||||
setForm((prev) => ({ ...prev, ip }));
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
return;
|
||||
setForm((prev) => ({
|
||||
...prev,
|
||||
ip: lastValidIp.current,
|
||||
}));
|
||||
}
|
||||
|
||||
setForm((prev) => ({
|
||||
...prev,
|
||||
ip: lastValidIp.current,
|
||||
}));
|
||||
}
|
||||
|
||||
function submit() {
|
||||
if (!canSubmit) return;
|
||||
|
||||
onAdd({ ...form });
|
||||
onAdd(form);
|
||||
}
|
||||
|
||||
return (
|
||||
<Card className="add-dsp-form">
|
||||
<div className="add-dsp-form__header">
|
||||
<h1 className="add-dsp-form__title">Add DSP</h1>
|
||||
<p className="add-dsp-form__hint">
|
||||
Register a new device to control from this app.
|
||||
</p>
|
||||
<p className="add-dsp-form__hint">Register a new device to control from this app.</p>
|
||||
</div>
|
||||
|
||||
<div className="add-dsp-form__field">
|
||||
@@ -109,6 +107,7 @@ function AddDSPForm({
|
||||
<div className="add-dsp-form__field">
|
||||
<label htmlFor="f-type">Model</label>
|
||||
<ChoiceSelect
|
||||
className=""
|
||||
id="f-type"
|
||||
value={form.type}
|
||||
options={DSP_TYPES}
|
||||
@@ -200,4 +199,4 @@ function AddDSPForm({
|
||||
);
|
||||
}
|
||||
|
||||
export default AddDSPForm;
|
||||
export default AddDSPForm;
|
||||
|
||||
Reference in New Issue
Block a user