merged tag stuff
This commit is contained in:
commit
4f31d036ef
41 changed files with 5028 additions and 126 deletions
48
src/app/FirmwareLoader.tsx
Normal file
48
src/app/FirmwareLoader.tsx
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
import { useEffect, useState } from 'react'
|
||||
import './App.css'
|
||||
import LoadingScreen from './LoadingScreen'
|
||||
import { useFirmwareAPI, useGlobalState } from 'providers'
|
||||
import { Firmware } from 'models'
|
||||
|
||||
interface Props {
|
||||
children: any;
|
||||
}
|
||||
|
||||
export default function FirmwareLoader(props: Props) {
|
||||
const { children } = props;
|
||||
const [loading, setLoading] = useState(false)
|
||||
const firmwareAPI = useFirmwareAPI();
|
||||
const [global, dispatch] = useGlobalState();
|
||||
|
||||
const loadFirmware = () => {
|
||||
setLoading(true)
|
||||
firmwareAPI.getAllLatestFirmware().then(resp => {
|
||||
let versions: Map<string, Firmware> = new Map();
|
||||
if (resp && resp.data && resp.data.firmware) {
|
||||
resp.data.firmware.forEach((raw: any) => {
|
||||
let firmware = Firmware.any(raw);
|
||||
let key = firmware.settings.platform + ":" + firmware.settings.channel;
|
||||
versions.set(key, firmware);
|
||||
});
|
||||
}
|
||||
dispatch({ key: "firmware", value: versions });
|
||||
}).finally(() => {
|
||||
setLoading(false)
|
||||
})
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
if (loading) return;
|
||||
loadFirmware()
|
||||
}, [loading])
|
||||
|
||||
if (loading || !global) return (
|
||||
<LoadingScreen message='Loading firmwares' />
|
||||
)
|
||||
|
||||
return (
|
||||
<>
|
||||
{children}
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
|
@ -10,6 +10,7 @@ import { User } from '../models/user'
|
|||
import { Team } from '../models/team'
|
||||
import { makeStyles } from '@mui/styles'
|
||||
import { Theme } from '@mui/material'
|
||||
// import FirmwareLoader from './FirmwareLoader'
|
||||
|
||||
const reducer = (state: GlobalState, action: GlobalStateAction): GlobalState => {
|
||||
return {
|
||||
|
|
@ -45,7 +46,8 @@ const globalDefault = {
|
|||
as: "",
|
||||
showErrors: false,
|
||||
userTeamPermissions: [],
|
||||
backgroundTasksComplete: false
|
||||
backgroundTasksComplete: false,
|
||||
firmware: new Map()
|
||||
}
|
||||
|
||||
interface Props {
|
||||
|
|
@ -68,15 +70,14 @@ export default function UserWrapper(props: Props) {
|
|||
if (hasFetched.current) return;
|
||||
setLoading(true)
|
||||
userAPI.getUserWithTeam(user_id).then(resp => {
|
||||
// console.log(resp.data.team)
|
||||
// console.log(resp.data.user)
|
||||
setGlobal({
|
||||
user: resp.data.user ? User.create(resp.data.user) : User.create(),
|
||||
team: resp.data.team ? Team.create(resp.data.team) : Team.create(),
|
||||
as: "",
|
||||
showErrors: false,
|
||||
userTeamPermissions: [],
|
||||
backgroundTasksComplete: false
|
||||
backgroundTasksComplete: false,
|
||||
firmware: new Map()
|
||||
})
|
||||
}).catch(() => {
|
||||
setGlobal(globalDefault)
|
||||
|
|
@ -98,9 +99,11 @@ export default function UserWrapper(props: Props) {
|
|||
|
||||
return (
|
||||
<StateProvider state={global} reducer={reducer}>
|
||||
<main className={classes.appContent}>
|
||||
<NavigationContainer toggleTheme={toggleTheme} />
|
||||
</main>
|
||||
{/* <FirmwareLoader> */}
|
||||
<main className={classes.appContent}>
|
||||
<NavigationContainer toggleTheme={toggleTheme} />
|
||||
</main>
|
||||
{/* </FirmwareLoader> */}
|
||||
</StateProvider>
|
||||
)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue