"use client"; import { MinusIcon, PlusIcon } from "@heroicons/react/24/outline"; import clsx from "clsx"; import { updateItemQuantity } from "components/cart/actions"; import { CartItem } from "lib/sfcc/types"; import { useActionState } from "react"; function SubmitButton({ type }: { type: "plus" | "minus" }) { return ( ); } export function EditItemQuantityButton({ item, type, optimisticUpdate, }: { item: CartItem; type: "plus" | "minus"; optimisticUpdate: any; }) { const [message, formAction] = useActionState(updateItemQuantity, null); const payload = { merchandiseId: item.merchandise.id, quantity: type === "plus" ? item.quantity + 1 : item.quantity - 1, }; const updateItemQuantityAction = formAction.bind(null, payload); return (
{ optimisticUpdate(payload.merchandiseId, type); updateItemQuantityAction(); }} >

{message}

); }