// src/App.jsx
import { createContext, useContext, useState } from "react";
const AuthContext = createContext(null);
function AuthProvider({ children }) {
const [user, setUser] = useState(null);
function login() {
setUser({ name: "Philip" });
}
function logout() {
setUser(null);
}
return (
{children}
);
}
function Header() {
const { user, login, logout } = useContext(AuthContext);
if (user) {
return (
Welcome, {user.name}
);
}
return (
);
}
function Dashboard() {
const { user } = useContext(AuthContext);
if (!user) {
return
Please log in to see your dashboard.
;
}
return
Dashboard content for {user.name}.
;
}
function App() {
return (
);
}
export default App;
/*
Notes:
- user starts as null (logged out); login() sets it to a fake user
object, logout() resets it back to null.
- Both Header and Dashboard branch their rendering on the same user
value from context — neither needs user passed to it as a prop.
*/