From de1d07afb119ab4dc0f059e1afc05f4dbb1706dd Mon Sep 17 00:00:00 2001 From: shrimbly Date: Wed, 15 Apr 2026 19:55:03 +1200 Subject: [PATCH] fix: onboarding timeout cleanup, prop safety, and placeholder text - TutorialOverlay: track all nested setTimeout IDs and clear on cleanup to prevent ghost animations when tutorial is skipped mid-demonstration - FTUXReadyStep: use strict local interface requiring both callbacks instead of optional FTUXStepProps - FTUXModelDefaultsStep: replace hardcoded "Gemini nano-banana-pro" with "None set" for the no-model-selected state Co-Authored-By: Claude Opus 4.6 --- .../onboarding/FTUXModelDefaultsStep.tsx | 2 +- src/components/onboarding/FTUXReadyStep.tsx | 7 ++- src/components/onboarding/TutorialOverlay.tsx | 49 ++++++++++++------- 3 files changed, 37 insertions(+), 21 deletions(-) diff --git a/src/components/onboarding/FTUXModelDefaultsStep.tsx b/src/components/onboarding/FTUXModelDefaultsStep.tsx index b5cb9fe3..d5573b6a 100644 --- a/src/components/onboarding/FTUXModelDefaultsStep.tsx +++ b/src/components/onboarding/FTUXModelDefaultsStep.tsx @@ -106,7 +106,7 @@ export function FTUXModelDefaultsStep({}: FTUXStepProps) { ) : ( <> - Gemini nano-banana-pro + None set