connect theme toggle

This commit is contained in:
Carter 2024-11-01 11:42:31 -06:00
parent 4c51513cfe
commit bce4089903
4 changed files with 22 additions and 10 deletions

View file

@ -43,7 +43,7 @@ function AuthHTTPWrapper() {
<AuthWrapper setToken={setToken}> <AuthWrapper setToken={setToken}>
{ token ? { token ?
<HTTPProvider token={token}> <HTTPProvider token={token}>
<UserWrapper/> <UserWrapper toggleTheme={toggleTheme}/>
</HTTPProvider> </HTTPProvider>
: :
<LoadingScreen <LoadingScreen

View file

@ -6,7 +6,7 @@ import { useUserAPI } from '../providers/pond/userAPI'
import { useAuth0 } from '@auth0/auth0-react' import { useAuth0 } from '@auth0/auth0-react'
import { or } from '../utils/types' import { or } from '../utils/types'
import LoadingScreen from './LoadingScreen' import LoadingScreen from './LoadingScreen'
import { pond } from "protobuf-ts/pond"; // import { pond } from "protobuf-ts/pond";
import NavigationContainer from '../navigation/NavigationContainer' import NavigationContainer from '../navigation/NavigationContainer'
import { GlobalState, GlobalStateAction, StateProvider } from '../providers/StateContainer' import { GlobalState, GlobalStateAction, StateProvider } from '../providers/StateContainer'
import { User } from '../models/user' import { User } from '../models/user'
@ -28,14 +28,19 @@ const globalDefault = {
backgroundTasksComplete: false backgroundTasksComplete: false
} }
export default function UserWrapper() { interface Props {
toggleTheme: () => void;
}
export default function UserWrapper(props: Props) {
const { toggleTheme } = props;
const [count, setCount] = useState(0) const [count, setCount] = useState(0)
const [loading, setLoading] = useState(false) const [loading, setLoading] = useState(false)
const userAPI = useUserAPI(); const userAPI = useUserAPI();
const useAuth = useAuth0(); const useAuth = useAuth0();
const hasFetched = useRef(false); const hasFetched = useRef(false);
// const [user, setUser] = useState<pond.User | undefined>(undefined) // const [user, setUser] = useState<pond.User | undefined>(undefined)
const [message, setMessage] = useState("Loading user profile...") // const [message, setMessage] = useState("Loading user profile...")
const [global, setGlobal] = useState<undefined | GlobalState>(undefined) const [global, setGlobal] = useState<undefined | GlobalState>(undefined)
let user_id = or(useAuth.user?.sub, "") let user_id = or(useAuth.user?.sub, "")
@ -72,14 +77,12 @@ export default function UserWrapper() {
console.log(loading) console.log(loading)
console.log(global) console.log(global)
if (loading || !global) return ( if (loading || !global) return (
<LoadingScreen <LoadingScreen />
message={message}
/>
) )
return ( return (
<StateProvider state={global} reducer={reducer}> <StateProvider state={global} reducer={reducer}>
<NavigationContainer> <NavigationContainer toggleTheme={toggleTheme}>
<div> <div>
<a href="https://vitejs.dev" target="_blank"> <a href="https://vitejs.dev" target="_blank">
<img src={viteLogo} className="logo" alt="Vite logo" /> <img src={viteLogo} className="logo" alt="Vite logo" />

View file

@ -9,13 +9,14 @@ import React, { PropsWithChildren, useState } from "react";
// import NotificationBanner from "common/NotificationBanner"; // import NotificationBanner from "common/NotificationBanner";
interface Props extends PropsWithChildren { interface Props extends PropsWithChildren {
// toggleTheme: () => void; toggleTheme: () => void;
// teams: Team[]; // teams: Team[];
// setTeams: React.Dispatch<React.SetStateAction<Team[]>>; // setTeams: React.Dispatch<React.SetStateAction<Team[]>>;
} }
export default function NavigationContainer(props: Props) { export default function NavigationContainer(props: Props) {
// const { toggleTheme, teams, setTeams } = props; // const { toggleTheme, teams, setTeams } = props;
const { toggleTheme } = props;
const { children } = props; const { children } = props;
const [sideNavigatorOpen, setSideNavigatorOpen] = useState<boolean>(false); const [sideNavigatorOpen, setSideNavigatorOpen] = useState<boolean>(false);
// const isMobile = useMobile(); // const isMobile = useMobile();
@ -34,7 +35,7 @@ export default function NavigationContainer(props: Props) {
<Header <Header
sideIsOpen={sideNavigatorOpen} sideIsOpen={sideNavigatorOpen}
openSide={openSideNavigator} openSide={openSideNavigator}
// toggleTheme={toggleTheme} toggleTheme={toggleTheme}
// teams={teams} // teams={teams}
// setTeams={setTeams} // setTeams={setTeams}
/> />

View file

@ -67,6 +67,14 @@ export default function UserMenu(props: Props) {
setLockIsHovered(false); setLockIsHovered(false);
}; };
useEffect(() => {
console.log(theme.palette.mode)
}, [theme.palette.mode])
useEffect(() => {
console.log(theme)
}, [theme])
const unauthenticatedUserMenu = () => { const unauthenticatedUserMenu = () => {
return ( return (
<React.Fragment> <React.Fragment>