diff --git a/README.md b/README.md index 612c71c..b88c086 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ROS2 Offline Dashboard +# CPRT WebUI A web dashboard for monitoring and interacting with your ROS2-powered rover. This dashboard integrates various panels—including a map view, telemetry, video stream, node manager, waypoint list, and more—using a Mosaic layout for a flexible, modular experience. diff --git a/src/app/dashboard/MosaicDashboardClient.tsx b/src/app/dashboard/MosaicDashboardClient.tsx new file mode 100644 index 0000000..f48e3a0 --- /dev/null +++ b/src/app/dashboard/MosaicDashboardClient.tsx @@ -0,0 +1,12 @@ +"use client"; + +import dynamic from "next/dynamic"; + +const MosaicDashboard = dynamic( + () => import("@/components/panels/MosaicDashboard"), + { ssr: false } +); + +export default function MosaicDashboardClient() { + return ; +} \ No newline at end of file diff --git a/src/app/dashboard/page.tsx b/src/app/dashboard/page.tsx index c92830f..aec256e 100644 --- a/src/app/dashboard/page.tsx +++ b/src/app/dashboard/page.tsx @@ -1,16 +1,16 @@ -"use client"; - -import dynamic from 'next/dynamic'; import Layout from '@/components/Layout'; +import type { Metadata } from "next"; +import MosaicDashboardClient from "./MosaicDashboardClient"; -const MosaicDashboard = dynamic(() => import('@/components/panels/MosaicDashboard'), { ssr: false }); +export const metadata: Metadata = { + title: "Dashboard - CPRT webUI", + description: "Carleton Planetary Robotics Team's ROS2 Web Interface", +}; -const Dashboard = () => { +export default function Dashboard() { return ( - + ); -}; - -export default Dashboard; +} \ No newline at end of file diff --git a/src/app/launch/ContainerListClient.tsx b/src/app/launch/ContainerListClient.tsx new file mode 100644 index 0000000..386258c --- /dev/null +++ b/src/app/launch/ContainerListClient.tsx @@ -0,0 +1,12 @@ +"use client"; + +import dynamic from "next/dynamic"; + +const ContainerList = dynamic( + () => import("@/components/ContainerList"), + { ssr: false } +); + +export default function ContainerListClient() { + return ; +} \ No newline at end of file diff --git a/src/app/launch/page.tsx b/src/app/launch/page.tsx index 6d238bc..e4848cc 100644 --- a/src/app/launch/page.tsx +++ b/src/app/launch/page.tsx @@ -1,15 +1,17 @@ -'use client'; - import Layout from "../../components/Layout"; +import type { Metadata } from "next"; import { Toaster } from "react-hot-toast"; -import dynamic from 'next/dynamic'; +import ContainerListClient from "./ContainerListClient"; -const ContainerListPage = dynamic(() => import("../../components/ContainerList"), { ssr: false }); +export const metadata: Metadata = { + title: "Launch - CPRT webUI", + description: "Carleton Planetary Robotics Team's ROS2 Web Interface", +}; export default function Launch() { return ( - + ); diff --git a/src/app/layout.tsx b/src/app/layout.tsx index a9f2f92..1c803b9 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -17,7 +17,7 @@ const geistMono = Geist_Mono({ }); export const metadata: Metadata = { - title: "BOB ROS2", + title: "CPRT webUI", description: "Carleton Planetary Robotics Team's ROS2 Web Interface", }; diff --git a/src/app/page.tsx b/src/app/page.tsx index d226165..e36b401 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -116,33 +116,102 @@ const HomePage = () => { return (
- {names.map((name, idx) => ( - {name} - ))} +
+

Dashboard Presets

+ +
+ {names.map((name, idx) => ( + + {name} + + ))} +
+
+ +
+

Tools

+ + + Launch + + + Base Station AP + + + Rover AP + +
- @@ -150,4 +219,4 @@ const HomePage = () => { ); }; -export default HomePage; +export default HomePage; \ No newline at end of file diff --git a/src/components/Layout.tsx b/src/components/Layout.tsx index 34b5584..c7ae316 100644 --- a/src/components/Layout.tsx +++ b/src/components/Layout.tsx @@ -13,7 +13,7 @@ const Layout: React.FC = ({ children }) => {