hydrogen-template / app /components /AddToCartButton.tsx
AbdulElahGwaith's picture
Upload folder using huggingface_hub
5ee3099 verified
import {type FetcherWithComponents} from '@remix-run/react';
import {CartForm, type OptimisticCartLineInput} from '@shopify/hydrogen';
export function AddToCartButton({
analytics,
children,
disabled,
lines,
onClick,
}: {
analytics?: unknown;
children: React.ReactNode;
disabled?: boolean;
lines: Array<OptimisticCartLineInput>;
onClick?: () => void;
}) {
return (
<CartForm route="/cart" inputs={{lines}} action={CartForm.ACTIONS.LinesAdd}>
{(fetcher: FetcherWithComponents<any>) => (
<>
<input
name="analytics"
type="hidden"
value={JSON.stringify(analytics)}
/>
<button
type="submit"
onClick={onClick}
disabled={disabled ?? fetcher.state !== 'idle'}
>
{children}
</button>
</>
)}
</CartForm>
);
}