refactor: move auth api call to api file

This commit is contained in:
2026-02-22 00:37:59 +07:00
parent 384ac12109
commit a64b63d0b2
5 changed files with 159 additions and 162 deletions
+2 -1
View File
@@ -1,6 +1,7 @@
import { createContext, useContext, useState, useEffect, type ReactNode } from "react"
import { useNavigate } from "react-router"
import { type User, getUser, getUserAsync, logout as logoutUser } from "@/lib/auth"
import { type User, getUser } from "@/lib/auth"
import { getUserAsync, logout as logoutUser } from "@/lib/api"
interface AuthContextType {
user: User | null
+3 -19
View File
@@ -4,6 +4,7 @@ import { FormInput } from "@/components/shared/form-input"
import { FormButton } from "@/components/shared/form-button"
import { useAuth } from "@/app/context/auth-context"
import { setTokens } from "@/lib/auth"
import { login } from "@/lib/api"
export default function LoginPage() {
const navigate = useNavigate()
@@ -42,29 +43,12 @@ export default function LoginPage() {
setLoading(true)
try {
const res = await fetch("http://localhost:8080/api/auth/login", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
email: form.email,
password: form.password,
}),
})
if (!res.ok) {
const data = await res.json()
setErrors({ general: data.message ?? "Invalid email or password" })
return
}
const data = await res.json()
const data = await login(form.email, form.password)
setTokens(data.access_token, data.refresh_token, rememberMe)
refreshUser()
navigate("/forms")
} catch (err) {
console.error(err)
setErrors({ general: "Something went wrong. Please try again." })
setErrors({ general: err instanceof Error ? err.message : "Something went wrong. Please try again." })
} finally {
setLoading(false)
}
+3 -17
View File
@@ -3,6 +3,7 @@ import { Link, useNavigate } from "react-router"
import { FormInput } from "@/components/shared/form-input"
import { FormButton } from "@/components/shared/form-button"
import { useAuth } from "@/app/context/auth-context"
import { register } from "@/lib/api"
export default function RegisterPage() {
const navigate = useNavigate()
@@ -52,25 +53,10 @@ export default function RegisterPage() {
}
try {
const res = await fetch("http://localhost:8080/api/auth/register", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
email: form.email,
password: form.password,
}),
})
if (!res.ok) {
const data = await res.json()
setErrors({ email: data.message ?? "Registration failed" })
return
}
await register(form.email, form.password)
navigate("/login")
} catch (err) {
console.error(err)
setErrors({ email: "Something went wrong. Please try again." })
setErrors({ email: err instanceof Error ? err.message : "Something went wrong. Please try again." })
}
}