"use client"; import ShoppingCartIcon from "@components/common/icons/ShoppingCartIcon"; import clsx from "clsx"; import Link from "next/link"; import { useAddProduct } from "@utils/hooks/useAddToCart"; import { useAppSelector } from "@/store/hooks"; import LoadingDots from "@components/common/icons/LoadingDots"; import { useCustomToast } from "@utils/hooks/useToast"; export default function AddToCartButton({ productType, productUrlKey, productId, isSaleable }: { productType?: string; productId: string; productUrlKey: string; isSaleable?: string; }) { const { isCartLoading, onAddToCart } = useAddProduct(); const { showToast } = useCustomToast(); const { user } = useAppSelector((state) => state.user); const session = { user }; const handleAddToCart = () => { if (!isSaleable || isSaleable === "") { showToast("This product is out of stock", "warning"); return; } onAddToCart({ productId: productId.split("/").pop() || "", quantity: 1, token: session?.user?.token ?? undefined, }); }; const buttonClasses = " flex w-full cursor-pointer items-center justify-center px-4 rounded-full min-h-8 tracking-wide "; const disabledClasses = "cursor-wait opacity-60 hover:opacity-60"; return productType !== "simple" ? ( ) : ( ); }