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:
1 parent
0db2cf28b3
commit
8c184ccae1
111 files changed
+12349
-62
No files matched your search
@@ -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")!,
|
||||
);
|
||||
Reference in new issue
Block a user