From 33fcc87f4188e176e251155868328eb09ba6fec4 Mon Sep 17 00:00:00 2001 From: Daniel Pupius Date: Thu, 24 Apr 2025 18:01:29 -0700 Subject: [PATCH] Add channel page --- web/src/components/Nav.tsx | 128 +++++++++--------- web/src/components/index.ts | 3 +- web/src/components/messages/ChannelCard.tsx | 71 ++++++++++ web/src/components/messages/MessageBubble.tsx | 67 +++++++++ web/src/components/messages/index.ts | 2 + web/src/routeTree.gen.ts | 74 +++++++++- web/src/routes/channel.$channelId.tsx | 113 ++++++++++++++++ web/src/routes/channels.tsx | 60 ++++++++ web/src/store/slices/aggregatorSlice.ts | 31 ++++- 9 files changed, 473 insertions(+), 76 deletions(-) create mode 100644 web/src/components/messages/ChannelCard.tsx create mode 100644 web/src/components/messages/MessageBubble.tsx create mode 100644 web/src/components/messages/index.ts create mode 100644 web/src/routes/channel.$channelId.tsx create mode 100644 web/src/routes/channels.tsx diff --git a/web/src/components/Nav.tsx b/web/src/components/Nav.tsx index efb012d..da9d183 100644 --- a/web/src/components/Nav.tsx +++ b/web/src/components/Nav.tsx @@ -3,12 +3,55 @@ import { Link } from "@tanstack/react-router"; import { ConnectionStatus } from "./ConnectionStatus"; import { Separator } from "./Separator"; import { SITE_TITLE } from "../lib/config"; -import { Info, Layers, LayoutDashboard, Radio, Palette } from "lucide-react"; +import { + Info, + Layers, + LayoutDashboard, + Radio, + MessageSquare, + LucideIcon, +} from "lucide-react"; +// Define navigation item structure +interface NavItem { + to: string; + label: string; + icon: LucideIcon; + exact?: boolean; +} + +// Define props for the component interface NavProps { connectionStatus: string; } +// Navigation items data +const navigationItems: NavItem[] = [ + { + to: "/", + label: "Dashboard", + icon: LayoutDashboard, + exact: true, + }, + { + to: "/packets", + label: "Stream", + icon: Radio, + exact: true, + }, + { + to: "/channels", + label: "Messages", + icon: MessageSquare, + }, + { + to: "/info", + label: "Information", + icon: Info, + exact: true, + }, +]; + export const Nav: React.FC = ({ connectionStatus }) => { return (