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:
@@ -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')
|
||||
|
||||
Reference in New Issue
Block a user