2025-05-19 20:31:30 -07:00

39 lines
973 B
TypeScript

import React, { useEffect } from "react";
import { useParams } from "react-router-dom";
import { useUser, UserType } from "../Components/UserContext";
import { Typography, Box } from "@mui/material";
const mockFetchUser = async (username: string) => {
return new Promise<UserType>((resolve) => {
const user : UserType = {
type: "candidate",
name: username,
isAuthenticated: true,
logout: () => {},
};
setTimeout(() => resolve(user), 500);
});
};
const UserRoute: React.FC = () => {
const { username } = useParams<{ username: string }>();
const { user, setUser } = useUser();
useEffect(() => {
if (username) {
mockFetchUser(username).then(setUser);
}
}, [username, setUser]);
return (
<Box m={2}>
<Typography variant="h5">User Page</Typography>
<Typography variant="body1">
{user ? `Hello, ${user.name}` : "Loading..."}
</Typography>
</Box>
);
};
export { UserRoute };