Fix egg companion: render egg visual, raise flash z-index, slower fade-out

- Remove egg stage filter from useBlobbiCompanionData (already done)
- Add egg rendering path to BlobbiCompanionVisual using BlobbiStageVisual
- Raise hatch flash z-index from 60 to 80 (above baby visual)
- Raise fade-out z-index to 90 with slower 2s duration
- Match fade timeout to 2.2s for smooth transition
This commit is contained in:
Chad Curtis
2026-04-04 16:47:43 -05:00
parent 6ecd3303db
commit 0b11baad2a
3 changed files with 15 additions and 9 deletions
@@ -17,6 +17,7 @@ import { useMemo, memo, type RefObject } from 'react';
import { BlobbiBabyVisual } from '@/blobbi/ui/BlobbiBabyVisual';
import { BlobbiAdultVisual } from '@/blobbi/ui/BlobbiAdultVisual';
import { BlobbiStageVisual } from '@/blobbi/ui/BlobbiStageVisual';
import { companionDataToBlobbi } from '@/blobbi/ui/lib/adapters';
import { useEffectiveEmotion } from '@/blobbi/dev/EmotionDevContext';
import type { BlobbiEmotion } from '@/blobbi/ui/lib/emotion-types';
@@ -248,7 +249,15 @@ export function BlobbiCompanionVisual({
)}
style={{ transformOrigin: 'center bottom' }}
>
{(companion.stage === 'baby' || companion.stage === 'adult') && (
{companion.stage === 'egg' ? (
// eslint-disable-next-line @typescript-eslint/no-explicit-any
<BlobbiStageVisual
companion={companion as any}
size="sm"
animated={false}
className="size-full"
/>
) : (
<MemoizedBlobbiVisual
stage={companion.stage}
blobbi={blobbi}
@@ -80,9 +80,6 @@ export function useBlobbiCompanionData(): UseBlobbiCompanionDataResult {
if (!blobbi) return null;
// Only baby and adult can be companions
if (blobbi.stage === 'egg') return null;
// Use projected stats if available, otherwise fall back to base stats
const stats = projectedState?.stats ?? blobbi.stats;
@@ -526,7 +526,7 @@ export function BlobbiHatchingCeremony({
setTimeout(() => {
setPhase('complete');
onComplete?.();
}, 1200);
}, 2200);
}, 600);
} catch (error) {
console.error('[HatchingCeremony] Naming failed:', error);
@@ -539,7 +539,7 @@ export function BlobbiHatchingCeremony({
setTimeout(() => {
setPhase('complete');
onComplete?.();
}, 1200);
}, 2200);
} finally {
setIsNaming(false);
}
@@ -653,7 +653,7 @@ export function BlobbiHatchingCeremony({
{showFlash && (
<div
className="absolute inset-0 bg-white animate-onboard-screen-flash pointer-events-none"
style={{ zIndex: 60 }}
style={{ zIndex: 80 }}
/>
)}
@@ -951,8 +951,8 @@ export function BlobbiHatchingCeremony({
<div
className="absolute inset-0 bg-white pointer-events-none"
style={{
zIndex: 70,
animation: 'blobbi-fade-to-white 1.2s ease-in forwards',
zIndex: 90,
animation: 'blobbi-fade-to-white 2s ease-in forwards',
}}
/>
)}