generated from muhtadeetaron/nextjs-template
fix(api): fix api endpoint logic #2
This commit is contained in:
@ -10,13 +10,14 @@ import { login } from "@/lib/auth";
|
||||
import DestructibleAlert from "@/components/DestructibleAlert";
|
||||
import { useAuth } from "@/context/AuthContext";
|
||||
import { LoginForm } from "@/types/auth";
|
||||
import { CircleAlert } from "lucide-react";
|
||||
|
||||
const LoginPage = () => {
|
||||
const router = useRouter();
|
||||
const { setToken } = useAuth();
|
||||
|
||||
const [form, setForm] = useState<LoginForm>({
|
||||
email: "",
|
||||
identifier: "",
|
||||
password: "",
|
||||
});
|
||||
|
||||
@ -71,11 +72,11 @@ const LoginPage = () => {
|
||||
<div className="flex flex-col justify-between gap-10">
|
||||
<div className="flex flex-col w-full gap-5">
|
||||
<FormField
|
||||
title="Email Address"
|
||||
value={form.email}
|
||||
title="Email \ Username"
|
||||
value={form.identifier}
|
||||
placeholder="Enter your email address..."
|
||||
handleChangeText={(value) =>
|
||||
setForm({ ...form, email: value })
|
||||
setForm({ ...form, identifier: value })
|
||||
}
|
||||
/>
|
||||
<FormField
|
||||
@ -87,9 +88,13 @@ const LoginPage = () => {
|
||||
}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{error && <DestructibleAlert text={error} extraStyles="" />}
|
||||
|
||||
<h1 className="flex justify-center items-center gap-2 bg-green-200 p-4 rounded-full">
|
||||
<CircleAlert size={20} />
|
||||
Your login details will be remembered.
|
||||
</h1>
|
||||
|
||||
<button
|
||||
onClick={loginUser}
|
||||
disabled={isLoading}
|
||||
|
||||
@ -28,34 +28,34 @@ const HomePage = () => {
|
||||
const [linkedViews, setLinkedViews] = useState<GalleryViews[]>();
|
||||
|
||||
useEffect(() => {
|
||||
let isMounted = true;
|
||||
// let isMounted = true;
|
||||
|
||||
const fetchBoardData = async () => {
|
||||
try {
|
||||
const response = await fetch(`${API_URL}/leaderboard`);
|
||||
if (!response.ok) {
|
||||
throw new Error("Failed to fetch leaderboard data");
|
||||
}
|
||||
// const fetchBoardData = async () => {
|
||||
// try {
|
||||
// const response = await fetch(`${API_URL}/leaderboard`);
|
||||
// if (!response.ok) {
|
||||
// throw new Error("Failed to fetch leaderboard data");
|
||||
// }
|
||||
|
||||
const data: LeaderboardEntry[] = await response.json();
|
||||
if (isMounted) setBoardData(data);
|
||||
} catch (err) {
|
||||
if (isMounted) {
|
||||
const message =
|
||||
err instanceof Error ? err.message : "An unexpected error occurred";
|
||||
setBoardError(message);
|
||||
}
|
||||
}
|
||||
};
|
||||
// const data: LeaderboardEntry[] = await response.json();
|
||||
// if (isMounted) setBoardData(data);
|
||||
// } catch (err) {
|
||||
// if (isMounted) {
|
||||
// const message =
|
||||
// err instanceof Error ? err.message : "An unexpected error occurred";
|
||||
// setBoardError(message);
|
||||
// }
|
||||
// }
|
||||
// };
|
||||
|
||||
const fetchedLinkedViews: GalleryViews[] = getLinkedViews();
|
||||
setLinkedViews(fetchedLinkedViews);
|
||||
|
||||
fetchBoardData();
|
||||
// fetchBoardData();
|
||||
|
||||
return () => {
|
||||
isMounted = false;
|
||||
};
|
||||
// return () => {
|
||||
// isMounted = false;
|
||||
// };
|
||||
}, []);
|
||||
|
||||
return (
|
||||
@ -144,7 +144,8 @@ const HomePage = () => {
|
||||
{/* Leaderboard Section */}
|
||||
<div className={styles.leaderboardWrapper}>
|
||||
<h2 className={styles.sectionTitle}>Leaderboard</h2>
|
||||
<div className={styles.leaderboardContainer}>
|
||||
<p className="text-center text-xl">Coming Soon.</p>
|
||||
{/* <div className={styles.leaderboardContainer}>
|
||||
<div className={styles.topThreeHeader}>
|
||||
<span className={styles.topThreeTitle}>Top 3</span>
|
||||
<button
|
||||
@ -175,7 +176,7 @@ const HomePage = () => {
|
||||
))
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</div> */}
|
||||
</div>
|
||||
|
||||
{/* Performance Summary Section */}
|
||||
|
||||
Reference in New Issue
Block a user