@@ -198,7 +226,7 @@ export default function LandingPage() {
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
transition={{ delay: 0.3 }}
- className="mx-auto max-w-2xl text-sm sm:text-lg leading-relaxed text-gray-600 dark:text-gray-400 md:text-xl "
+ className="mx-auto max-w-2xl text-sm sm:text-lg leading-relaxed text-gray-600 dark:text-gray-400 md:text-xl"
>
Stop settling for flat grids. Generate high-fidelity, 3D isometric monoliths that
visualize your coding rhythm with professional precision.
@@ -208,9 +236,9 @@ export default function LandingPage() {
+
+ {/* FIX 6: aria-disabled on
doesn't prevent clicks — replaced with a
+ conditional href and a real e.preventDefault() guard so the link is
+ genuinely non-navigable when no username is entered. */}
{
- if (!hasUsername) {
+ if (!dashboardEnabled) {
e.preventDefault();
- } else {
- trackUser(trimmedUsername);
- addSearch(trimmedUsername);
+ return;
}
+ trackUser(trimmedUsername);
+ addSearch(trimmedUsername);
}}
className={`relative flex min-w-[160px] items-center justify-center gap-2 overflow-hidden rounded-xl border px-6 py-3.5 text-sm font-semibold transition-all duration-200 active:scale-[0.98] ${
hasUsername
? 'border-black/10 bg-gray-100 text-black hover:bg-gray-200 dark:border-[rgba(255,255,255,0.15)] dark:bg-white/[0.04] dark:text-white dark:hover:bg-white/10'
- : 'border-black/10 bg-gray-100 text-gray-500 dark:border-[rgba(255,255,255,0.08)] dark:bg-white/[0.02] dark:text-white/35'
+ : 'pointer-events-none border-black/10 bg-gray-100 text-gray-500 dark:border-[rgba(255,255,255,0.08)] dark:bg-white/[0.02] dark:text-white/35'
}`}
>
Watch Dashboard
@@ -345,7 +376,6 @@ export default function LandingPage() {
{svgState === 'loaded' && svgContent && (
)}