Release Notes - v1.8.1
Architecture & Routing
- Landing Page Separation (
src/app/page.tsx,src/components/LandingPage.tsx): Completely decoupled the main Daily Game from the root landing page. The root route (/) now acts strictly as a lightweight, fast-loading marketing page. Obsolete state management (mode,setMode) was stripped out. - Dedicated Daily Game Route (
src/app/modes/[mode]/page.tsx,src/components/Game.tsx): Migrated the core daily game into the existing dynamic modes router. The daily game now securely lives at/modes/daily. Added seamless Next.js<Link>prefetching from the landing page's "Play" button for instant client-side transitions. - Tutorial Migration: Successfully preserved the "How to Play" modal logic, migrating it into the dynamic mode router to ensure first-time users receive instructions upon their first puzzle interaction, regardless of the entry point.
Gameplay & Logic Optimization
- Leaderboard Timer Accuracy (
src/hooks/useDailyGame.ts,src/components/GuessInput.tsx,src/components/DailyGame.tsx): Fixed an issue where the gameplay timer would silently start as soon as the component mounted, resulting in bloated leaderboard times if a tab was left open. - Implemented a lazy-start mechanism: the timer state (
startedAt) now strictly initializes as undefined. - Bound a new
startTimercallback to theonTypeevent within theGuessInputcomponent, ensuring the internal clock accurately begins on the player's first keystroke. Built-in fallbacks ensure the timer gracefully recovers if a guess is pasted or autofilled.
UI / UX Refinements
- Settings Page Hierarchy (
src/app/settings/page.tsx): Adjusted the visual hierarchy within the "Danger Zone". The "Sign Out" button was re-styled to utilize the application's orange design tokens, visually distinguishing a safe session exit from the highly destructive, red "Clear Local Data" action. - Share Component Contrast (
src/components/ShareButton.tsx): Toned down the background and shadow brightness of the "Share Result" button to match the standard primary button aesthetic, removing the overpowering high-contrast hover state.
Full Changelog: v1.8.0...v1.8.1