fix(Connect): disable connecting multiple times
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
import React, { useState } from "react";
|
||||||
import { TabElementProps } from "@app/components/Dialog/NewDeviceDialog";
|
import { TabElementProps } from "@app/components/Dialog/NewDeviceDialog";
|
||||||
import { Button } from "@components/UI/Button.js";
|
import { Button } from "@components/UI/Button.js";
|
||||||
import { Input } from "@components/UI/Input.js";
|
import { Input } from "@components/UI/Input.js";
|
||||||
@@ -33,10 +34,13 @@ export const HTTP = ({ closeDialog }: TabElementProps): JSX.Element => {
|
|||||||
defaultValue: location.protocol === "https:",
|
defaultValue: location.protocol === "https:",
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const [connectionInProgress, setConnectionInProgress] = useState(false);
|
||||||
|
|
||||||
const onSubmit = handleSubmit(async (data) => {
|
const onSubmit = handleSubmit(async (data) => {
|
||||||
|
setConnectionInProgress(true);
|
||||||
|
|
||||||
const id = randId();
|
const id = randId();
|
||||||
const device = addDevice(id);
|
const device = addDevice(id);
|
||||||
setSelectedDevice(id);
|
|
||||||
const connection = new HttpConnection(id);
|
const connection = new HttpConnection(id);
|
||||||
// TODO: Promise never resolves
|
// TODO: Promise never resolves
|
||||||
await connection.connect({
|
await connection.connect({
|
||||||
@@ -44,9 +48,10 @@ export const HTTP = ({ closeDialog }: TabElementProps): JSX.Element => {
|
|||||||
fetchInterval: 2000,
|
fetchInterval: 2000,
|
||||||
tls: data.tls,
|
tls: data.tls,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
setSelectedDevice(id);
|
||||||
device.addConnection(connection);
|
device.addConnection(connection);
|
||||||
subscribeAll(device, connection);
|
subscribeAll(device, connection);
|
||||||
|
|
||||||
closeDialog();
|
closeDialog();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -77,8 +82,8 @@ export const HTTP = ({ closeDialog }: TabElementProps): JSX.Element => {
|
|||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<Button type="submit">
|
<Button type="submit" disabled={connectionInProgress}>
|
||||||
<span>Connect</span>
|
<span>{connectionInProgress ? 'Connecting...' : 'Connect' }</span>
|
||||||
</Button>
|
</Button>
|
||||||
</form>
|
</form>
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user