From 62bdd79b3473262dde5fb0a90eab34fe7bf344fd Mon Sep 17 00:00:00 2001 From: Tyler Hoang Date: Sun, 17 May 2026 13:07:40 -0700 Subject: 'UI Shell and General Architecture' --- frontend/components/prism/TickerHeader.tsx | 51 ++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 frontend/components/prism/TickerHeader.tsx (limited to 'frontend/components/prism/TickerHeader.tsx') diff --git a/frontend/components/prism/TickerHeader.tsx b/frontend/components/prism/TickerHeader.tsx new file mode 100644 index 0000000..23254f8 --- /dev/null +++ b/frontend/components/prism/TickerHeader.tsx @@ -0,0 +1,51 @@ +import { deltaClass, fmtCurrency, fmtPct } from "@/lib/format"; +import { buildIdentityLine, rangePercent } from "@/lib/overview"; +import type { TickerOverview } from "@/types/api"; + +type Props = { + overview: TickerOverview; + onToggleWatchlist: () => void; + isSaved: boolean; +}; + +export function TickerHeader({ overview, onToggleWatchlist, isSaved }: Props) { + const pct = rangePercent(overview); + + return ( +
+
+ {overview.profile.symbol} +
+ {overview.profile.symbol} + {overview.profile.name || "Name unavailable"} + {overview.meta.is_partial ? Partial Data : null} +
+

{buildIdentityLine(overview)}

+
+ +
+
52 Week Range
+
+ {fmtCurrency(overview.range_52w.low)} + {fmtCurrency(overview.range_52w.price ?? overview.quote.price)} + {fmtCurrency(overview.range_52w.high)} +
+
+ {pct != null ? : null} +
+
+ +
+ {fmtCurrency(overview.quote.price)} + + {fmtCurrency(overview.quote.change)} ยท {fmtPct(overview.quote.change_pct, 2, true)} + + Prev close {fmtCurrency(overview.quote.prev_close)} + +
+
+ ); +} + -- cgit v1.3-2-g0d8e