fix: pass bars data to TradingView chart correctly
- Include bars in loader response - Convert timestamp to YYYY-MM-DD format for TradingView - Fix error response to always include bars array
This commit is contained in:
@@ -33,20 +33,20 @@ export async function loader({ params, request }: { params: { ticker: string };
|
|||||||
const barsData = barsRes.ok ? await barsRes.json() : null;
|
const barsData = barsRes.ok ? await barsRes.json() : null;
|
||||||
const bars = barsData?.bars || [];
|
const bars = barsData?.bars || [];
|
||||||
|
|
||||||
return Response.json({ ticker, position, orders });
|
return Response.json({ ticker, position, orders, bars });
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function StockDetail() {
|
export default function StockDetail() {
|
||||||
const { ticker, position, orders, bars } = useLoaderData() as LoaderData;
|
const { ticker, position, orders, bars } = useLoaderData() as LoaderData;
|
||||||
|
|
||||||
// Convert Alpaca bars to TradingView format
|
// Convert Alpaca bars to TradingView format (YYYY-MM-DD for time)
|
||||||
const chartData = bars?.map((bar: any) => ({
|
const chartData = bars?.map((bar: any) => ({
|
||||||
time: bar.t,
|
time: bar.t ? new Date(bar.t).toISOString().split('T')[0] : "",
|
||||||
open: bar.o,
|
open: bar.o,
|
||||||
high: bar.h,
|
high: bar.h,
|
||||||
low: bar.l,
|
low: bar.l,
|
||||||
close: bar.c,
|
close: bar.c,
|
||||||
})) || [];
|
})).filter((bar: any) => bar.time) || [];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="min-h-screen bg-gradient-to-br from-gray-50 to-blue-50">
|
<div className="min-h-screen bg-gradient-to-br from-gray-50 to-blue-50">
|
||||||
|
|||||||
@@ -44,6 +44,6 @@ export async function loader({ params }: { params: { ticker: string } }) {
|
|||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Alpaca data error:", error);
|
console.error("Alpaca data error:", error);
|
||||||
return Response.json({ error: "Failed to fetch data" }, { status: 500 });
|
return Response.json({ ticker, price: 0, bars: [] }, { status: 500 });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user