feat: add Citations and WatchlistChat components, integrate with API

- Implemented Citations component to display citation data.
- Created WatchlistDrawer and ChatSidebar components for managing watchlists and AI chat functionality.
- Integrated API calls for watchlist management and chat interactions.
- Updated index.tsx to include new components in the main application layout.
- Added API client in lib/api.ts for structured API interactions.
- Developed Alerts, Dashboard, Portfolio, Routines, Screener, and Report pages with relevant data fetching and UI components.
- Introduced styles in tokens.css for consistent theming across the application.
- Configured TypeScript and Vite for project setup and development.
This commit is contained in:
asepharyana committed 2026-09-15 12:36:48 +07:00
1 parent 0db2cf28b3
commit 8c184ccae1
111 files changed
+12349 -62

No files matched your search

+50
View File
@@ -0,0 +1,50 @@
import { render } from "solid-js/web";
import { Router, Route, useLocation } from "@solidjs/router";
import { WatchlistDrawer, ChatSidebar } from "./components/WatchlistChat";
import Dashboard from "./pages/Dashboard";
import Routines from "./pages/Routines";
import Screener from "./pages/Screener";
import Alerts from "./pages/Alerts";
import Report from "./pages/Report";
import Portfolio from "./pages/Portfolio";
import "./styles/tokens.css";
function Nav() {
const loc = useLocation();
const link = (href: string, label: string) => (
<a href={href} class={loc.pathname === href ? "active" : ""}>{label}</a>
);
return (
<nav class="fs-nav">
<strong>FlowSight</strong>
{link("/", "Dashboard")}
{link("/routines", "Routines")}
{link("/screener", "Screener")}
{link("/alerts", "Alerts")}
{link("/portfolio", "Portfolio")}
</nav>
);
}
render(
() => (
<Router root={(props) => (
<div class="fs-app">
<Nav />
<main class="fs-main">{props.children}</main>
<aside style={{ width: "300px", padding: "20px 16px 20px 0", display: "flex", "flex-direction": "column", gap: "12px" }}>
<WatchlistDrawer />
<ChatSidebar />
</aside>
</div>
)}>
<Route path="/" component={Dashboard} />
<Route path="/routines" component={Routines} />
<Route path="/screener" component={Screener} />
<Route path="/alerts" component={Alerts} />
<Route path="/report/:ticker" component={Report} />
<Route path="/portfolio" component={Portfolio} />
</Router>
),
document.getElementById("root")!,
);