From 4b21765ab94f0b40469dc1205c5057f480316c20 Mon Sep 17 00:00:00 2001 From: soryu Date: Mon, 1 Dec 2025 18:44:33 +0000 Subject: Frontend: mission screen transform with dimming, auto-pan image; hide stats in mission mode --- frontend/src/components/LandingPage.tsx | 53 ++++++++----- frontend/src/components/MissionDrawer.tsx | 120 ++++++++++++++++++++++++++++++ frontend/src/styles/pc98.css | 84 ++++++++++++++++++++- frontend/tsconfig.tsbuildinfo | 2 +- 4 files changed, 239 insertions(+), 20 deletions(-) create mode 100644 frontend/src/components/MissionDrawer.tsx (limited to 'frontend') diff --git a/frontend/src/components/LandingPage.tsx b/frontend/src/components/LandingPage.tsx index 9c262be..ea8dfbc 100644 --- a/frontend/src/components/LandingPage.tsx +++ b/frontend/src/components/LandingPage.tsx @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react' +import React, { useState, useEffect, useRef } from 'react' import { LoadingScreen } from './LoadingScreen' import { HeartLogo } from './HeartLogo' @@ -14,6 +14,7 @@ export function LandingPage({ onLogin }: LandingPageProps) { const [energy, setEnergy] = useState(0) const [ramped, setRamped] = useState(false) const [pendingAction, setPendingAction] = useState(null) + const [missionMode, setMissionMode] = useState(false) // Fade-in landing page content after mount useEffect(() => { @@ -91,8 +92,8 @@ export function LandingPage({ onLogin }: LandingPageProps) { } const handleMission = () => { - // Placeholder action for now - setPendingAction('mission') + // Toggle screen transformation instead of modal/drawer + setMissionMode((m) => !m) } return ( @@ -147,7 +148,8 @@ export function LandingPage({ onLogin }: LandingPageProps) { {/* Minimal overlay: masthead, issue badge, and CTA */} -
+
+