diff --git a/frontend/public/video/poster.jpg b/frontend/public/video/poster.jpg index c2927df..67cbe77 100644 Binary files a/frontend/public/video/poster.jpg and b/frontend/public/video/poster.jpg differ diff --git a/frontend/public/video/recording.mp4 b/frontend/public/video/recording.mp4 index 13908a2..930828c 100644 Binary files a/frontend/public/video/recording.mp4 and b/frontend/public/video/recording.mp4 differ diff --git a/frontend/scripts/prerender.mjs b/frontend/scripts/prerender.mjs index 0f3d739..e5bb063 100644 --- a/frontend/scripts/prerender.mjs +++ b/frontend/scripts/prerender.mjs @@ -408,7 +408,7 @@ async function prerender() { const updated = updateHead(baseIndexHtml, route).replace( '
', - `
${html}
` + `
${html}
` ); if (updated === baseIndexHtml) { diff --git a/frontend/src/components/home/HomePage.tsx b/frontend/src/components/home/HomePage.tsx index 072d18f..5664963 100644 --- a/frontend/src/components/home/HomePage.tsx +++ b/frontend/src/components/home/HomePage.tsx @@ -49,6 +49,7 @@ const SHOWCASE_STEP_COUNT = 4; const SHOWCASE_INTERVAL_MS = 5200; const FILTER_ANIMATION_MS = 5000; const INSPECT_SCROLL_ANIMATION_MS = 4600; +const SCOUT_TABLE_REVEAL_MS = 2400; const BRAND_NAME = 'Perfect Postcode'; const BRAND_TEXT_CLASS = 'text-teal-600 dark:text-teal-400'; const HOME_SECTION_CONTAINER_CLASS = 'max-w-7xl mx-auto px-6 md:px-10'; @@ -262,19 +263,6 @@ const VOTE_SHARE_SEGMENTS = [ { name: '% Other parties', value: 4 }, ]; -const HOUSE_PRICE_BREAKDOWN = [ - { label: 'Flats', value: '£612k', helper: '146 sold' }, - { label: 'Terraces', value: '£1.04m', helper: '38 sold' }, - { label: 'Semis', value: '£1.22m', helper: '14 sold' }, - { label: '£/sq ft', value: '£872', helper: 'local median' }, -]; - -const PRICE_SIGNALS = [ - ['5-year change', '+22%'], - ['Last 12 months', '+2.1%'], - ['Days to sell', '41'], -]; - const INSPECT_TRAVEL_ENTRIES: TravelTimeEntry[] = [ { mode: 'transit', @@ -821,36 +809,6 @@ function RightPaneOnlyScreen({ -
- {HOUSE_PRICE_BREAKDOWN.map((item) => ( -
-
- {item.label} -
-
- - {item.value} - - - {item.helper} - -
-
- ))} -
-
- {PRICE_SIGNALS.map(([label, value]) => ( -
-
{label}
-
- {value} -
-
- ))} -
@@ -914,101 +872,169 @@ function RightPaneOnlyScreen({ ); } -function ScoutScreen() { +function ScoutScreen({ isActive }: { isActive: boolean }) { const { t } = useTranslation(); + const [isTableRevealed, setIsTableRevealed] = useState(false); + const scoutRows = [ + { postcode: 'SW5 9AA', score: '94%', commute: '23 min', price: '£492k' }, + { postcode: 'SE22 8EF', score: '91%', commute: '28 min', price: '£518k' }, + { postcode: 'N4 2AB', score: '88%', commute: '31 min', price: '£476k' }, + ]; + + useEffect(() => { + if (!isActive) { + setIsTableRevealed(false); + return; + } + + const prefersReducedMotion = + typeof window.matchMedia === 'function' && + window.matchMedia('(prefers-reduced-motion: reduce)').matches; + if (prefersReducedMotion) { + setIsTableRevealed(true); + return; + } + + setIsTableRevealed(false); + const timer = window.setTimeout(() => setIsTableRevealed(true), SCOUT_TABLE_REVEAL_MS); + return () => window.clearTimeout(timer); + }, [isActive]); return ( -
-
-
-
-
- - - -
-
- Share -
-
- Send the shortlist +
+
+
+
+
+
+ + + +
+
+ Share +
+
+ Send the shortlist +
-
-
-