File tree Expand file tree Collapse file tree 1 file changed +14
-12
lines changed
Expand file tree Collapse file tree 1 file changed +14
-12
lines changed Original file line number Diff line number Diff line change @@ -314,24 +314,25 @@ function AddToCartButton({
314314} ) {
315315 const addToCart = useAddToCart ( )
316316 const openDrawer = useCartDrawerStore ( ( s ) => s . openDrawer )
317+ const [ showAdded , setShowAdded ] = React . useState ( false )
317318
318- const disabled = ! variant || ! variant . availableForSale || addToCart . isPending
319+ const disabled =
320+ ! variant || ! variant . availableForSale || ( addToCart . isPending && ! showAdded )
319321
320- const label = addToCart . isSuccess
322+ const label = showAdded
321323 ? 'Added ✓'
322- : addToCart . isPending
323- ? 'Adding…'
324- : ! variant
325- ? 'Unavailable'
326- : ! variant . availableForSale
327- ? 'Sold out'
328- : 'Add to cart'
324+ : ! variant
325+ ? 'Unavailable'
326+ : ! variant . availableForSale
327+ ? 'Sold out'
328+ : 'Add to cart'
329329
330+ // Reset the "Added ✓" confirmation after a moment
330331 React . useEffect ( ( ) => {
331- if ( ! addToCart . isSuccess ) return
332- const id = window . setTimeout ( ( ) => addToCart . reset ( ) , 1500 )
332+ if ( ! showAdded ) return
333+ const id = window . setTimeout ( ( ) => setShowAdded ( false ) , 1500 )
333334 return ( ) => window . clearTimeout ( id )
334- } , [ addToCart . isSuccess , addToCart ] )
335+ } , [ showAdded ] )
335336
336337 return (
337338 < div className = "flex flex-col gap-2" >
@@ -340,6 +341,7 @@ function AddToCartButton({
340341 disabled = { disabled }
341342 onClick = { ( ) => {
342343 if ( ! variant ) return
344+ setShowAdded ( true )
343345 openDrawer ( )
344346 addToCart . mutate ( {
345347 variantId : variant . id ,
You can’t perform that action at this time.
0 commit comments