import { useLoaderData } from "react-router"; import TradingViewChart from "../components/TradingViewChart"; import Navbar from "../components/Navbar"; export const meta = () => [{ title: "Stock Detail - AITrader" }]; interface LoaderData { ticker: string; position: number | null; orders: any[]; } export async function loader({ params }: { params: { ticker: string } }) { const ticker = params.ticker?.toUpperCase() || ""; // Fetch position const posRes = await fetch(`${process.env.BASE_URL}/api/alpaca/positions`); const positions = posRes.ok ? await posRes.json() : []; const position = positions.find((p: any) => p.ticker === ticker)?.qty ?? null; // Fetch orders const ordRes = await fetch(`${process.env.BASE_URL}/api/alpaca/orders`); const ordersData = ordRes.ok ? await ordRes.json() : { orders: [] }; const orders = ordersData.orders?.filter((o: any) => o.symbol === ticker) || []; return Response.json({ ticker, position, orders }); } export default function StockDetail() { const { ticker, position, orders } = useLoaderData() as LoaderData; return (
{position ? `Qty: ${position}` : "No position"}
No orders
:{JSON.stringify(orders, null, 2)}}