Disable add to bag button if no personalization added and show prompt message

This commit is contained in:
Andymick
2026-07-18 10:01:54 +01:00
parent 755b7e786d
commit f6c464372f
+11 -1
View File
@@ -845,6 +845,7 @@ export default function DesignCanvas({ product }: { product: ProductDTO }) {
</div> </div>
)} )}
<div className="flex flex-col gap-3">
<div className="flex items-center gap-4"> <div className="flex items-center gap-4">
<div className="flex items-center border border-ink"> <div className="flex items-center border border-ink">
<button <button
@@ -865,13 +866,22 @@ export default function DesignCanvas({ product }: { product: ProductDTO }) {
</div> </div>
<button <button
onClick={handleAddToBag} onClick={handleAddToBag}
className="flex-1 bg-clay px-6 py-3 text-sm font-medium text-paper transition-colors hover:bg-clay-dark" disabled={elementsFront.length === 0 && elementsBack.length === 0}
className={`flex-1 px-6 py-3 text-sm font-medium transition-colors ${
elementsFront.length === 0 && elementsBack.length === 0
? 'bg-muted text-muted/50 cursor-not-allowed'
: 'bg-clay text-paper hover:bg-clay-dark'
}`}
> >
Add to bag <Price cents={((elementsFront.length > 0 || elementsBack.length > 0) ? effectivePriceForPersonalised : product.effectivePrice) * quantity} /> Add to bag <Price cents={((elementsFront.length > 0 || elementsBack.length > 0) ? effectivePriceForPersonalised : product.effectivePrice) * quantity} />
</button> </button>
</div> </div>
{elementsFront.length === 0 && elementsBack.length === 0 && (
<p className="text-xs text-splash-pink">Add text or images to personalize your design before adding to bag</p>
)}
{justAdded && <p className="text-sm text-pine">Added to your bag.</p>} {justAdded && <p className="text-sm text-pine">Added to your bag.</p>}
</div> </div>
</div>
<LoginPromptModal isOpen={showLoginPrompt} onClose={() => setShowLoginPrompt(false)} /> <LoginPromptModal isOpen={showLoginPrompt} onClose={() => setShowLoginPrompt(false)} />
</div> </div>