File size: 1,962 Bytes
6c4e56e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | import React, { useEffect, useState } from "react";
import { useHistory } from "react-router-dom";
import { Button } from "./common/ui/button";
import { useAuth } from "../contexts/AuthContext";
import { ROUTES } from "../lib/constants";
const Home = () => {
const history = useHistory();
const [onboardingData, setOnboardingData] = useState(null);
const [isLoggedIn, setIsLoggedIn] = useState(false);
const { user, logout } = useAuth();
useEffect(() => {
const data = localStorage.getItem("onboardingData");
if (data) {
setOnboardingData(JSON.parse(data));
}
}, []);
useEffect(() => {
if (user && user.id) {
setIsLoggedIn(true);
} else {
// If we were previously logged in, redirect to login instead of register
if (isLoggedIn) history.push(ROUTES.LOGIN);
else history.push(ROUTES.REGISTER);
}
}, [user, history, isLoggedIn]);
const handleLogout = async () => {
if (user && user.id) {
await logout(user.id);
}
};
return (
<div className="max-w-2xl mx-auto p-6">
<div className="flex justify-between items-center mb-8">
<h1 className="text-2xl font-bold">Home Page</h1>
<Button variant="outline" onClick={handleLogout}>
Logout
</Button>
</div>
{onboardingData && (
<div className="bg-white rounded-lg shadow p-6 space-y-4">
<h2 className="text-xl font-semibold mb-4">Your Information</h2>
{Object.entries(onboardingData).map(([key, value]) => (
<div key={key} className="flex border-b pb-2">
<span className="font-medium w-1/3 capitalize">
{key.replace(/([A-Z])/g, " $1").trim()}:
</span>
<span className="w-2/3">
{typeof value === "boolean" ? (value ? "Yes" : "No") : value}
</span>
</div>
))}
</div>
)}
</div>
);
};
export default Home;
|