Skip to content

Commit c45f20b

Browse files
committed
frontend/chargers: move getting the secret from frame to chargers component.
This fixes the problem with the charger list popping up for a second b6686e4 was intended to fix.
1 parent 6427f5e commit c45f20b

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

frontend/src/components/Frame.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,7 @@ class VirtualNetworkInterface {
8787
}
8888

8989
// This waits for the Worker to be done with the setup
90-
async setupHandler(e: MessageEvent) {
91-
if (!secret) {
92-
await get_decrypted_secret();
93-
}
90+
setupHandler(e: MessageEvent) {
9491
if (e.data === "started") {
9592
this.worker.onmessage = (e) => this.handleWorkerMessage(e);
9693
const message_data: SetupMessage = {

frontend/src/pages/chargers.tsx

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import { ChargerListComponent } from "../components/charger_list";
2323
import { connected } from "../components/Navbar";
2424
import Median from "median-js-bridge";
2525
import { get_decrypted_secret, secret } from "../utils";
26+
import { Row, Spinner } from "react-bootstrap";
2627

2728
export interface ChargersState {
2829
connected: boolean;
@@ -41,23 +42,33 @@ export function ChargerList() {
4142
const [loaded, setLoaded] = useState(false);
4243

4344
if (Median.isNativeApp() && !loaded) {
44-
setTimeout(() => {
45+
setTimeout(async () => {
46+
if (!secret) {
47+
await get_decrypted_secret();
48+
}
49+
setLoaded(true);
4550
const currentConnection = sessionStorage.getItem("currentConnection");
4651
try {
4752
const currentConnectionObject: ChargersState = JSON.parse(currentConnection);
4853
if (currentConnectionObject.connected) {
4954
setState(currentConnectionObject);
50-
setLoaded(true)
5155
}
5256
} catch {}
5357
});
58+
} else if (!loaded) {
59+
setLoaded(true);
5460
}
5561

5662
useEffect(() => {
5763
connected.value = state.connected;
5864
document.title = state.connectedName == "" ? "Remote Access" : state.connectedName;
5965
}, [state])
6066

67+
if (!loaded) {
68+
return <Row className="align-content-center justify-content-center m-0 h-100">
69+
<Spinner className="p-3"animation='border' variant='primary'/>
70+
</Row>
71+
}
6172
if (!state.connected) {
6273
return <>
6374
<ChargerListComponent setParentState={setState} parentState={state} />

0 commit comments

Comments
 (0)