summaryrefslogtreecommitdiff
path: root/frontend/components/PriceChart.tsx
diff options
context:
space:
mode:
authorTyler Hoang <tyler@tylerhoang.xyz>2026-05-17 13:07:40 -0700
committerTyler Hoang <tyler@tylerhoang.xyz>2026-05-17 13:07:40 -0700
commit62bdd79b3473262dde5fb0a90eab34fe7bf344fd (patch)
tree84f75baf7503e1df77c8335750650a72b088468a /frontend/components/PriceChart.tsx
parent1482422f2f5b236cdcdff4429ae06bb55dca4083 (diff)
'UI Shell and General Architecture'
Diffstat (limited to 'frontend/components/PriceChart.tsx')
-rw-r--r--frontend/components/PriceChart.tsx31
1 files changed, 22 insertions, 9 deletions
diff --git a/frontend/components/PriceChart.tsx b/frontend/components/PriceChart.tsx
index 8ce4ea9..3db55ce 100644
--- a/frontend/components/PriceChart.tsx
+++ b/frontend/components/PriceChart.tsx
@@ -12,6 +12,10 @@ type Props = {
};
export function PriceChart({ symbol, points }: Props) {
+ if (!points.length) {
+ return <div className="psm-card-empty">No price history available for this range.</div>;
+ }
+
const x = points.map((point) => point.date);
const y = points.map((point) => point.close ?? null);
const data: Data[] = [
@@ -21,26 +25,35 @@ export function PriceChart({ symbol, points }: Props) {
type: "scatter",
mode: "lines",
name: symbol,
- line: { color: "#C2AA7A", width: 2.4 },
+ line: { color: "#C2AA7A", width: 2.5 },
fill: "tozeroy",
- fillcolor: "rgba(194,170,122,0.10)"
+ fillcolor: "rgba(194,170,122,0.08)",
+ hovertemplate: "%{x}<br>$%{y:.2f}<extra></extra>"
}
];
+
const layout: Partial<Layout> = {
autosize: true,
height: 360,
- margin: { l: 52, r: 18, t: 18, b: 38 },
+ margin: { l: 52, r: 24, t: 20, b: 42 },
paper_bgcolor: "rgba(0,0,0,0)",
plot_bgcolor: "rgba(0,0,0,0)",
hovermode: "x unified",
font: { family: "IBM Plex Mono, monospace", color: "#8E8676" },
- xaxis: { showgrid: false, zeroline: false },
- yaxis: { showgrid: true, gridcolor: "#232934", tickprefix: "$", tickformat: ",.2f" }
+ xaxis: {
+ showgrid: false,
+ zeroline: false,
+ color: "#8E8676"
+ },
+ yaxis: {
+ showgrid: true,
+ gridcolor: "#232934",
+ color: "#8E8676",
+ tickprefix: "$",
+ tickformat: ",.2f"
+ }
};
- if (!points.length) {
- return <div className="empty-panel">No price history available for this period.</div>;
- }
-
return <Plot data={data} layout={layout} config={{ displayModeBar: false, responsive: true }} className="chart" useResizeHandler />;
}
+