From 365de4354bee0ea127ec338a44db8dcced91f83e Mon Sep 17 00:00:00 2001 From: Harkamal Randhawa Date: Sun, 24 May 2026 05:09:27 -0600 Subject: [PATCH] Replace landing hero PixelAvatar with live PetHabitat preview. Shows a tamagotchi-style mini pet screen for guests and signed-in users, with a skeleton while loading customization data. --- app/page.tsx | 4 +- components/landing/landing-pet-preview.tsx | 96 ++++++++++++++++++++++ components/pet/pet-habitat.tsx | 10 ++- 3 files changed, 105 insertions(+), 5 deletions(-) create mode 100644 components/landing/landing-pet-preview.tsx diff --git a/app/page.tsx b/app/page.tsx index 3db636d..ee45e14 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,6 +1,6 @@ import { Suspense } from "react"; -import { PixelAvatar } from "@/components/avatar/pixel-avatar"; +import { LandingPetPreview } from "@/components/landing/landing-pet-preview"; import { LandingHeroActions } from "@/components/layout/landing-hero-actions"; import { SiteFooter, SiteHeader } from "@/components/layout/site-header"; import { @@ -37,7 +37,7 @@ export default function Home() { - +

Your daily loop

diff --git a/components/landing/landing-pet-preview.tsx b/components/landing/landing-pet-preview.tsx new file mode 100644 index 0000000..bff1178 --- /dev/null +++ b/components/landing/landing-pet-preview.tsx @@ -0,0 +1,96 @@ +"use client"; + +import Link from "next/link"; +import { useCallback, useEffect, useState } from "react"; + +import { PetHabitat } from "@/components/pet/pet-habitat"; +import { + defaultAvatarCustomization, + getAvatarCustomization, + type AvatarCustomization, +} from "@/lib/avatar-customization-storage"; +import { routes } from "@/lib/routes"; +import { createClient } from "@/lib/supabase/client"; +import { cn } from "@/lib/utils"; + +function LandingPetPreviewSkeleton() { + return ( +