- Convert site from royal-blue theme to black/white monochrome (desaturate all blue-hued colors; keep WhatsApp green and error red) - Swap blue circular brand logo for mono YS mark; regenerate favicon/PWA icons - Add 6 Pudu robots (CC1 Pro, MT1 Max, MT1 Vac, T600, T600 Underride, BG1 Pro) - Fix favicon.ico to RGBA (Next 16 Turbopack decode) and Stripe apiVersion type Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
30 lines
891 B
TypeScript
30 lines
891 B
TypeScript
'use client';
|
|
|
|
import { Suspense, lazy } from 'react';
|
|
import { cn } from '@/lib/utils';
|
|
|
|
const Spline = lazy(() => import('@splinetool/react-spline'));
|
|
|
|
interface SplineSceneProps {
|
|
scene: string;
|
|
className?: string;
|
|
}
|
|
|
|
export function SplineScene({ scene, className }: SplineSceneProps) {
|
|
return (
|
|
<Suspense
|
|
fallback={
|
|
<div className="flex h-full w-full items-center justify-center bg-[#221F20]">
|
|
<div className="relative h-12 w-12">
|
|
<div className="absolute inset-0 rounded-full border border-[#e7e7e7]/20" />
|
|
<div className="absolute inset-0 animate-spin rounded-full border-t-2 border-[#e7e7e7]" />
|
|
<div className="absolute inset-2 rounded-full bg-[#5e5e5e]/30 blur-md" />
|
|
</div>
|
|
</div>
|
|
}
|
|
>
|
|
<Spline scene={scene} className={cn('h-full w-full', className)} />
|
|
</Suspense>
|
|
);
|
|
}
|