Loading portal-gui/package.json +2 −1 Original line number Diff line number Diff line Loading @@ -11,7 +11,8 @@ "dependencies": { "next": "16.0.5", "react": "19.2.0", "react-dom": "19.2.0" "react-dom": "19.2.0", "rsuite": "^6.0.0" }, "devDependencies": { "@types/node": "^20", Loading portal-gui/src/app/components/TopBar/TopBar.tsx 0 → 100644 +87 −0 Original line number Diff line number Diff line "use client"; import React, { useState } from "react"; import styles from "./topbar.module.scss"; import {Button, Toggle} from "rsuite" import Link from "next/link"; import { useRouter } from "next/navigation"; import buttons from "../../app/buttons.module.scss"; import { logoIcon } from "@/app/utils/icons"; const TopBar = () => { const [menuOpen, setMenuOpen] = useState(false); const route = useRouter(); return ( <div className={styles.container}> <header className={styles.header}> <Link href={"/"} className={styles.logo}> {logoIcon} Your Digital Assistant </Link> <div className={styles.menuBox}> {/* {user && ( <Whisper placement="bottomEnd" trigger="click" speaker={ <Popover arrow={false} className={styles.popover}> <ul className={styles.notificationBox}> {notifications.length === 0 ? ( <p className={styles.noNotifications}> No notifications yet </p> ) : ( <> {notifications .sort((a, b) => { const dateA = new Date(a.published); const dateB = new Date(b.published); return dateB.getTime() - dateA.getTime(); }) .slice(0, 3) .map((notification) => ( <NotificationItem key={notification.id} notification={notification} /> ))} {notifications.length > 3 && ( <Link href="/notifications" className={styles.viewAll} > {" "} + {notifications.length - 3} more...{" "} <strong>View all</strong> </Link> )} </> )} </ul> </Popover> } > {unreadNotifications > 0 ? ( <Badge content={unreadNotifications} maxCount={99}> <Button>{BellIcon}</Button> </Badge> ) : ( <Button>{BellIcon}</Button> )} </Whisper> )} */} <div className={`${styles.userSection} ${menuOpen ? styles.open : ""}`} > </div> </div> </header> </div> ); }; export default TopBar; portal-gui/src/app/components/TopBar/topbar.module.scss 0 → 100644 +0 −0 Empty file added. portal-gui/src/app/layout.tsx +10 −10 Original line number Diff line number Diff line import type { Metadata } from "next"; import { Geist, Geist_Mono } from "next/font/google"; import "./globals.css"; import "./styles/globals.css"; const geistSans = Geist({ variable: "--font-geist-sans", subsets: ["latin"], }); // const geistSans = Geist({ // variable: "--font-geist-sans", // subsets: ["latin"], // }); const geistMono = Geist_Mono({ variable: "--font-geist-mono", subsets: ["latin"], }); // const geistMono = Geist_Mono({ // variable: "--font-geist-mono", // subsets: ["latin"], // }); export const metadata: Metadata = { title: "Create Next App", Loading @@ -24,7 +24,7 @@ export default function RootLayout({ }>) { return ( <html lang="en"> <body className={`${geistSans.variable} ${geistMono.variable}`}> <body > {children} </body> </html> Loading portal-gui/src/app/page.tsx +1 −1 Original line number Diff line number Diff line import Image from "next/image"; import styles from "./page.module.css"; import styles from "./styles/page.module.css"; export default function Home() { return ( Loading Loading
portal-gui/package.json +2 −1 Original line number Diff line number Diff line Loading @@ -11,7 +11,8 @@ "dependencies": { "next": "16.0.5", "react": "19.2.0", "react-dom": "19.2.0" "react-dom": "19.2.0", "rsuite": "^6.0.0" }, "devDependencies": { "@types/node": "^20", Loading
portal-gui/src/app/components/TopBar/TopBar.tsx 0 → 100644 +87 −0 Original line number Diff line number Diff line "use client"; import React, { useState } from "react"; import styles from "./topbar.module.scss"; import {Button, Toggle} from "rsuite" import Link from "next/link"; import { useRouter } from "next/navigation"; import buttons from "../../app/buttons.module.scss"; import { logoIcon } from "@/app/utils/icons"; const TopBar = () => { const [menuOpen, setMenuOpen] = useState(false); const route = useRouter(); return ( <div className={styles.container}> <header className={styles.header}> <Link href={"/"} className={styles.logo}> {logoIcon} Your Digital Assistant </Link> <div className={styles.menuBox}> {/* {user && ( <Whisper placement="bottomEnd" trigger="click" speaker={ <Popover arrow={false} className={styles.popover}> <ul className={styles.notificationBox}> {notifications.length === 0 ? ( <p className={styles.noNotifications}> No notifications yet </p> ) : ( <> {notifications .sort((a, b) => { const dateA = new Date(a.published); const dateB = new Date(b.published); return dateB.getTime() - dateA.getTime(); }) .slice(0, 3) .map((notification) => ( <NotificationItem key={notification.id} notification={notification} /> ))} {notifications.length > 3 && ( <Link href="/notifications" className={styles.viewAll} > {" "} + {notifications.length - 3} more...{" "} <strong>View all</strong> </Link> )} </> )} </ul> </Popover> } > {unreadNotifications > 0 ? ( <Badge content={unreadNotifications} maxCount={99}> <Button>{BellIcon}</Button> </Badge> ) : ( <Button>{BellIcon}</Button> )} </Whisper> )} */} <div className={`${styles.userSection} ${menuOpen ? styles.open : ""}`} > </div> </div> </header> </div> ); }; export default TopBar;
portal-gui/src/app/layout.tsx +10 −10 Original line number Diff line number Diff line import type { Metadata } from "next"; import { Geist, Geist_Mono } from "next/font/google"; import "./globals.css"; import "./styles/globals.css"; const geistSans = Geist({ variable: "--font-geist-sans", subsets: ["latin"], }); // const geistSans = Geist({ // variable: "--font-geist-sans", // subsets: ["latin"], // }); const geistMono = Geist_Mono({ variable: "--font-geist-mono", subsets: ["latin"], }); // const geistMono = Geist_Mono({ // variable: "--font-geist-mono", // subsets: ["latin"], // }); export const metadata: Metadata = { title: "Create Next App", Loading @@ -24,7 +24,7 @@ export default function RootLayout({ }>) { return ( <html lang="en"> <body className={`${geistSans.variable} ${geistMono.variable}`}> <body > {children} </body> </html> Loading
portal-gui/src/app/page.tsx +1 −1 Original line number Diff line number Diff line import Image from "next/image"; import styles from "./page.module.css"; import styles from "./styles/page.module.css"; export default function Home() { return ( Loading