fix: stray "0" shown for steps with no timer (v0.52.1)

`{step.timerSeconds && (...)}` renders the literal 0 when timerSeconds is
the number 0 rather than null/undefined — only false/null/undefined skip
rendering in JSX, a bare falsy number doesn't. Some steps ended up with
timerSeconds stored as 0 instead of null (e.g. AI generation filling in a
"default" value for an optional field rather than omitting it), which
this guard then rendered as a bare "0" instead of hiding the timer.

Fixed at all 4 render sites (recipe page, cook mode, both print views) by
coercing to a real boolean (`!!step.timerSeconds`) — makes a stored 0
behave identically to null everywhere it's displayed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Arnaud
2026-07-19 18:29:18 +02:00
parent 8f83a1eaae
commit 5403a06348
8 changed files with 19 additions and 7 deletions
@@ -300,7 +300,7 @@ export function CookingMode({
</p>
{/* Timer for current step */}
{step.timerSeconds && (
{!!step.timerSeconds && (
<div className="flex flex-col items-center gap-3">
<div className={cn(
"text-5xl font-mono font-bold tabular-nums",