From 2881e7598628697d0a786cf840abdc69086d1d24 Mon Sep 17 00:00:00 2001 From: Tyler Hoang Date: Tue, 19 May 2026 00:28:08 -0700 Subject: feat: remove Coverage card from overview tab, move Profile to top of right column Co-Authored-By: Claude Sonnet 4.6 --- frontend/app/page.tsx | 45 +-------------------------------------------- 1 file changed, 1 insertion(+), 44 deletions(-) (limited to 'frontend/app') diff --git a/frontend/app/page.tsx b/frontend/app/page.tsx index 971216c..7ccb781 100644 --- a/frontend/app/page.tsx +++ b/frontend/app/page.tsx @@ -13,7 +13,7 @@ import { TickerHeader } from "@/components/prism/TickerHeader"; import { TopBar } from "@/components/prism/TopBar"; import { ApiError, api } from "@/lib/api"; import { deltaClass, fmtCurrency, fmtLarge, fmtNumber, fmtPct } from "@/lib/format"; -import { availableFieldSummary, buildKpis, limitIndices, marketClock, OVERVIEW_NAV_ITEMS, signalTone, unavailableFields } from "@/lib/overview"; +import { buildKpis, limitIndices, marketClock, OVERVIEW_NAV_ITEMS, signalTone } from "@/lib/overview"; import type { HistoryPoint, MarketIndex, SearchResult, TickerOverview, WatchlistResponse } from "@/types/api"; type LoadState = "idle" | "loading" | "ready" | "invalid" | "error"; @@ -53,8 +53,6 @@ function OverviewClient() { const isSaved = selectedTicker ? watchlistSymbols.has(selectedTicker) : false; const marketCards = useMemo(() => limitIndices(market), [market]); const kpis = useMemo(() => (overview ? buildKpis(overview) : []), [overview]); - const missingFields = useMemo(() => (overview ? unavailableFields(overview) : []), [overview]); - useEffect(() => { const timer = window.setInterval(() => setClockSnapshot(marketClock()), 60_000); return () => window.clearInterval(timer); @@ -314,7 +312,6 @@ function OverviewClient() {
- @@ -425,46 +422,6 @@ function SignalCard({ overview }: { overview: TickerOverview }) { ); } -function DataStatusCard({ overview, missingFields }: { overview: TickerOverview; missingFields: string[] }) { - const entries = Object.entries(overview.meta.sources).slice(0, 6); - const visibleMissing = missingFields.slice(0, 4); - const hiddenMissingCount = Math.max(0, missingFields.length - visibleMissing.length); - - return ( -
-
-
-
Coverage
-

Coverage

-
- {overview.meta.status} -
-

{availableFieldSummary(overview)}

- {overview.meta.is_partial ? ( -
- {missingFields.length ? visibleMissing.map((field) => {field}) : null} - {hiddenMissingCount ? +{hiddenMissingCount} more : null} -
- ) : null} -
- {entries.length ? ( - entries.map(([field, source]) => ( -
- {field} - {source} -
- )) - ) : ( -
- Sources - Unavailable -
- )} -
-
- ); -} - function ProfileCard({ overview }: { overview: TickerOverview }) { return (
-- cgit v1.3-2-g0d8e