grid: fix redirect logic
import { map, omit } from 'lodash';
-import React, { FunctionComponent } from 'react';
+import React, { FunctionComponent, useEffect } from 'react';
import { ErrorBoundary } from 'react-error-boundary';
import { Route, RouteComponentProps, useHistory, useParams } from 'react-router-dom';
import { ErrorAlert } from '../components/ErrorAlert';
import { MenuState, Nav } from '../nav/Nav';
import { useCharges } from '../state/docket';
+import useKilnState from '../state/kiln';
import { RemoveApp } from '../tiles/RemoveApp';
import { SuspendApp } from '../tiles/SuspendApp';
import { Tile } from '../tiles/Tile';
@@ -20,6 +21,27 @@ export const Grid: FunctionComponent<{}> = () => {
const { menu } = useParams<RouteProps>();
const chargesLoaded = Object.keys(charges).length > 0;
+ useEffect(() => {
+ // TOOD: rework
+ // Heuristically detect reload completion and redirect
+ async function attempt(count = 0) {
+ if(count > 5) {
+ window.location.reload();
+ }
+ const start = performance.now();
+ await useKilnState.getState().fetchVats();
+ await useKilnState.getState().fetchVats();
+ if((performance.now() - start) > 5000) {
+ attempt(count+1);
+ } else {
+ push('/');
+ }
+ }
+ if(menu === 'upgrading') {
+ attempt();
+ }
+ }, [menu])
+
return (
<div className="flex flex-col">
<header className="fixed sm:sticky bottom-0 sm:bottom-auto sm:top-0 left-0 z-30 flex justify-center w-full px-4">
