"use client";

import { useEffect, useState } from "react";
import Link from "next/link";
import {
  getCart,
  removeFromCart,
  updateCartQuantity,
  type CartItem,
} from "../lib/cart";
import Footer from "../components/Footer";

export default function CartPage() {
  const [cart, setCart] = useState<CartItem[]>([]);

  useEffect(() => {
    setCart(getCart());
  }, []);

  const total = cart.reduce(
    (sum, item) => sum + item.price * item.quantity,
    0
  );

  if (cart.length === 0) {
    return (
      <main className="min-h-screen bg-white py-16">
        <div className="mx-auto max-w-7xl px-4 text-center">
          <h1 className="text-2xl font-semibold text-[#4B5966]">
            Your Cart
          </h1>
          <p className="mt-4 text-sm text-gray-500">
            Your cart is empty.
          </p>

          <Link
            href="/category"
            className="mt-6 inline-block rounded-lg bg-[#B570D4] px-6 py-3 text-sm font-medium text-white"
          >
            Continue Shopping
          </Link>
        </div>
      </main>
    );
  }

  return (
    <main className="min-h-screen bg-white py-10">
      <div className="mx-auto max-w-7xl px-4">

        <h1 className="text-2xl font-semibold text-[#4B5966]">
          Your Cart
        </h1>

        <div className="mt-8 space-y-4">
          {cart.map((item) => (
            <div
              key={item.id}
              className="flex items-center gap-4 rounded-xl border border-[#EEEEEE] p-4"
            >
              <img
                src={item.image || "/products/01_1_.jpg"}
                alt={item.name}
                className="h-24 w-24 object-contain"
              />

              <div className="flex-1">
                <h2 className="font-medium text-[#4B5966]">
                  {item.name}
                </h2>

                <p className="mt-1 text-sm text-gray-500">
                  AED {item.price.toFixed(2)}
                </p>

                <div className="mt-3 flex items-center gap-3">
                  <button
                    type="button"
                    onClick={() => {
                      const updated = updateCartQuantity(
                        item.id,
                        item.quantity - 1
                      );
                      setCart(updated);
                    }}
                    className="rounded border px-3 py-1"
                  >
                    −
                  </button>

                  <span>{item.quantity}</span>

                  <button
                    type="button"
                    onClick={() => {
                      const updated = updateCartQuantity(
                        item.id,
                        item.quantity + 1
                      );
                      setCart(updated);
                    }}
                    className="rounded border px-3 py-1"
                  >
                    +
                  </button>

                  <button
                    type="button"
                    onClick={() => {
                      const updated = removeFromCart(item.id);
                      setCart(updated);
                    }}
                    className="ml-4 text-sm text-red-500"
                  >
                    Remove
                  </button>
                </div>
              </div>

              <div className="font-semibold text-[#4B5966]">
                AED {(item.price * item.quantity).toFixed(2)}
              </div>
            </div>
          ))}
        </div>

        <div className="mt-8 flex justify-end">
          <div className="text-right">
            <p className="text-sm text-gray-500">
              Cart Total
            </p>

            <p className="mt-2 text-2xl font-bold text-[#4B5966]">
              AED {total.toFixed(2)}
            </p>

           <Link
  href="/checkout"
  className="mt-5 inline-block rounded-lg bg-[#B570D4] px-8 py-3 text-sm font-medium text-white"
>
  Proceed to Checkout
</Link>
          </div>
        </div>

      </div>
        <Footer />
    </main>
  );
}