merged tag stuff

This commit is contained in:
Carter 2025-01-27 12:16:47 -06:00
commit 4f31d036ef
41 changed files with 5028 additions and 126 deletions

View 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}
</>
)
}

View file

@ -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>
)
}