"use client"; import Link from "next/link"; import { useEffect, useState } from "react"; import type { Cart } from "@/lib/types"; export default function CartPage() { const [cart, setCart] = useState(null); const [error, setError] = useState(""); async function load() { const response = await fetch("/backend/cart", { credentials: "include", cache: "no-store" }); if (!response.ok) { setError("Не удалось загрузить корзину"); return; } setCart(await response.json()); } useEffect(() => { void load(); }, []); async function remove(productId: number) { const response = await fetch(`/backend/cart/items/${productId}`, { method: "DELETE", credentials: "include", }); if (response.ok) { setCart(await response.json()); } } if (error) { return

{error}

; } if (!cart) { return

Загрузка…

; } return ( <>

Корзина

{cart.items.length === 0 &&

Пока пусто.

} {cart.items.map((item) => (

{item.title} × {item.qty} = {item.line_total} ₽{" "}

))}

Итого: {cart.total} ₽

{cart.items.length > 0 && Оформить заказ} ); }