Joey Eamigh 564d212148
phase 6: post-review enhancements — data, map UX, charts, navigation
Data:
- Expand datacenter inventory from 38 to 108 facilities
- Add 14 North Carolina datacenters (Apple, Google, AWS, Microsoft, etc.)
- Add missing operators (Cloudflare, Switch, Vantage, Apple, Aligned, Iron Mountain)
- Fill geographic gaps (Southeast, Northwest, Midwest)

Map UX:
- Dark mode via ColorScheme.DARK, hide all default UI controls
- Center on Chapel Hill, NC (lat 35.91, lng -79.06) at zoom 6
- New map legend component (price gradient, marker scale, pulse/glow key)
- Floating region price labels via AdvancedMarker at region centroids
- Tune breathing animation: 8s period, only stressed regions, 5 FPS
- Enhanced markers: capacity labels on 200+ MW, status-based styling

Charts:
- Fix generation chart timestamp duplication (use epoch ms dataKey)
- Fix correlation chart black-on-black axis labels
- Context-aware tick formatting (time-only for 24h, date for longer ranges)

GPU Calculator:
- Default to B200 (1,000W), add R200 Rubin (1,800W)

Navigation:
- Granular Suspense boundaries on all 5 pages
- Extract data-fetching into async Server Components per section
- Page shells render instantly, sections stream in independently
2026-02-11 14:44:46 -05:00

30 lines
964 B
TypeScript

import { Suspense } from 'react';
import { ChartSkeleton } from '@/components/charts/chart-skeleton.js';
import type { Metadata } from 'next';
import { DemandChartSection } from './_sections/demand-chart-section.js';
export const metadata: Metadata = {
title: 'Demand Analysis | Energy & AI Dashboard',
description: 'Regional electricity demand growth, peak tracking, and datacenter load impact',
};
export default function DemandPage() {
return (
<div className="px-4 py-6 sm:px-6 sm:py-8">
<div className="mb-6 sm:mb-8">
<h1 className="text-2xl font-bold tracking-tight sm:text-3xl">Demand Analysis</h1>
<p className="mt-2 text-muted-foreground">
Regional demand growth trends, peak demand tracking, and estimated datacenter load as a percentage of regional
demand.
</p>
</div>
<Suspense fallback={<ChartSkeleton />}>
<DemandChartSection />
</Suspense>
</div>
);
}