fix(cart): use session-based auth instead of localStorage for checkout

Cart page checked localStorage.getItem('user') which is never set by
the cookie-based auth system. Replaced with useUser() context and
corrected redirect target from /cart to /checkout.
This commit is contained in:
2026-05-19 16:04:02 +02:00
parent c7d2713c23
commit 2526cf9543
+4 -3
View File
@@ -5,6 +5,7 @@ import { useRouter } from 'next/navigation'
import Link from 'next/link'
import { Navbar } from '@/components/storefront/Navbar'
import { Button } from '@/components/ui/Button'
import { useUser } from '@/context/UserContext'
interface CartItem {
productId: string
@@ -18,6 +19,7 @@ interface CartItem {
export default function CartPage() {
const [cart, setCart] = useState<CartItem[]>([])
const router = useRouter()
const { user } = useUser()
useEffect(() => {
const stored = JSON.parse(localStorage.getItem('cart') || '[]')
@@ -51,10 +53,9 @@ export default function CartPage() {
const subtotal = cart.reduce((sum, item) => sum + item.price * item.quantity, 0)
async function handleCheckout() {
const user = localStorage.getItem('user')
function handleCheckout() {
if (!user) {
router.push('/login?redirect=/cart')
router.push('/login?redirect=/checkout')
return
}
router.push('/checkout')