Fix toFixed crash when price is a string from PHP API

PHP returns prices as strings (e.g. "0.000000000"). Wrap in parseFloat()
before calling .toFixed(2) to prevent render crash.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
John Mizerek 2026-03-14 21:26:10 -07:00
parent 6a73752136
commit 35f1f57f92

View file

@ -4232,7 +4232,7 @@
<div class="item-info" onclick="event.stopPropagation(); ${hasOptions ? `MenuBuilder.toggleModifier('${mod.id}')` : `MenuBuilder.selectOption('${parentItemId}', '${mod.id}', ${depth})`}" style="cursor: pointer;"> <div class="item-info" onclick="event.stopPropagation(); ${hasOptions ? `MenuBuilder.toggleModifier('${mod.id}')` : `MenuBuilder.selectOption('${parentItemId}', '${mod.id}', ${depth})`}" style="cursor: pointer;">
<div class="item-name">${this.escapeHtml(mod.name)}</div> <div class="item-name">${this.escapeHtml(mod.name)}</div>
<div class="item-meta"> <div class="item-meta">
${mod.price > 0 ? `<span>+$${mod.price.toFixed(2)}</span>` : ''} ${parseFloat(mod.price) > 0 ? `<span>+$${parseFloat(mod.price).toFixed(2)}</span>` : ''}
${mod.isDefault ? '<span class="item-type-badge">Default</span>' : ''} ${mod.isDefault ? '<span class="item-type-badge">Default</span>' : ''}
${mod.requiresSelection ? '<span class="item-type-badge" style="background: #dc3545; color: white;">Required</span>' : ''} ${mod.requiresSelection ? '<span class="item-type-badge" style="background: #dc3545; color: white;">Required</span>' : ''}
${mod.maxSelections > 0 ? `<span class="item-type-badge">Max ${mod.maxSelections}</span>` : ''} ${mod.maxSelections > 0 ? `<span class="item-type-badge">Max ${mod.maxSelections}</span>` : ''}
@ -4289,7 +4289,7 @@
<div class="item-info" onclick="event.stopPropagation(); ${hasModifiers ? `MenuBuilder.toggleItem('${item.id}')` : `MenuBuilder.selectItem('${item.id}')`}" style="cursor: pointer;"> <div class="item-info" onclick="event.stopPropagation(); ${hasModifiers ? `MenuBuilder.toggleItem('${item.id}')` : `MenuBuilder.selectItem('${item.id}')`}" style="cursor: pointer;">
<div class="item-name">${this.escapeHtml(item.name)}</div> <div class="item-name">${this.escapeHtml(item.name)}</div>
<div class="item-meta"> <div class="item-meta">
<span class="item-price">$${(item.price || 0).toFixed(2)}</span> <span class="item-price">$${parseFloat(item.price || 0).toFixed(2)}</span>
${hasModifiers ? `<span>${item.modifiers.length} modifiers</span>` : ''} ${hasModifiers ? `<span>${item.modifiers.length} modifiers</span>` : ''}
</div> </div>
</div> </div>