diff --git a/surfsense_web/app/(home)/announcements/layout.tsx b/surfsense_web/app/(home)/announcements/layout.tsx index 072db2c3f..cff15d3a1 100644 --- a/surfsense_web/app/(home)/announcements/layout.tsx +++ b/surfsense_web/app/(home)/announcements/layout.tsx @@ -2,20 +2,20 @@ import type { Metadata } from "next"; import type { ReactNode } from "react"; export const metadata: Metadata = { - title: "Announcements | SurfSense", + title: "What's New | SurfSense", description: "Latest product updates, feature releases, and news from SurfSense.", alternates: { canonical: "https://surfsense.com/announcements", }, openGraph: { - title: "Announcements | SurfSense", + title: "What's New | SurfSense", description: "Latest product updates, feature releases, and news from SurfSense.", url: "https://surfsense.com/announcements", type: "website", }, twitter: { card: "summary_large_image", - title: "Announcements | SurfSense", + title: "What's New | SurfSense", description: "Latest product updates, feature releases, and news from SurfSense.", }, }; diff --git a/surfsense_web/app/(home)/announcements/page.tsx b/surfsense_web/app/(home)/announcements/page.tsx index 966c09f77..f287e43d1 100644 --- a/surfsense_web/app/(home)/announcements/page.tsx +++ b/surfsense_web/app/(home)/announcements/page.tsx @@ -24,7 +24,7 @@ export default function AnnouncementsPage() {
- You're all caught up! New announcements will appear here. + You're all caught up! New updates will appear here.
); diff --git a/surfsense_web/components/homepage/footer-new.tsx b/surfsense_web/components/homepage/footer-new.tsx index 53eb833e9..5943cc8ec 100644 --- a/surfsense_web/components/homepage/footer-new.tsx +++ b/surfsense_web/components/homepage/footer-new.tsx @@ -38,7 +38,7 @@ export function FooterNew() { href: "/contact", }, { - title: "Announcements", + title: "What's New", href: "/announcements", }, ]; diff --git a/surfsense_web/components/layout/providers/FreeLayoutDataProvider.tsx b/surfsense_web/components/layout/providers/FreeLayoutDataProvider.tsx index 8b362f45b..a2695078a 100644 --- a/surfsense_web/components/layout/providers/FreeLayoutDataProvider.tsx +++ b/surfsense_web/components/layout/providers/FreeLayoutDataProvider.tsx @@ -1,6 +1,6 @@ "use client"; -import { Inbox, Megaphone, SquareLibrary } from "lucide-react"; +import { Inbox, SquareLibrary } from "lucide-react"; import { useRouter } from "next/navigation"; import type { ReactNode } from "react"; import { Fragment, useCallback, useEffect, useMemo, useState } from "react"; @@ -55,28 +55,24 @@ export function FreeLayoutDataProvider({ children }: FreeLayoutDataProviderProps const navItems: NavItem[] = useMemo( () => - [ - { - title: "Inbox", - url: "#inbox", - icon: Inbox, - isActive: false, - }, - isMobile - ? { - title: "Documents", - url: "#documents", - icon: SquareLibrary, - isActive: false, - } - : null, - { - title: "Announcements", - url: "#announcements", - icon: Megaphone, - isActive: false, - }, - ].filter((item): item is NavItem => item !== null), + ( + [ + { + title: "Inbox", + url: "#inbox", + icon: Inbox, + isActive: false, + }, + isMobile + ? { + title: "Documents", + url: "#documents", + icon: SquareLibrary, + isActive: false, + } + : null, + ] as (NavItem | null)[] + ).filter((item): item is NavItem => item !== null), [isMobile] ); @@ -90,11 +86,12 @@ export function FreeLayoutDataProvider({ children }: FreeLayoutDataProviderProps (item: NavItem) => { if (item.title === "Inbox") gate("use the inbox"); else if (item.title === "Documents") setIsDocsSidebarOpen((v) => !v); - else if (item.title === "Announcements") gate("view announcements"); }, [gate] ); + const handleAnnouncements = useCallback(() => gate("see what's new"), [gate]); + const handleSearchSpaceSelect = useCallback( (_id: number) => gate("switch search spaces"), [gate] @@ -127,6 +124,7 @@ export function FreeLayoutDataProvider({ children }: FreeLayoutDataProviderProps onSettings={gatedAction("search space settings")} onManageMembers={gatedAction("team management")} onUserSettings={gatedAction("account settings")} + onAnnouncements={handleAnnouncements} onLogout={() => router.push("/register")} pageUsage={pageUsage} isChatPage diff --git a/surfsense_web/components/layout/ui/icon-rail/IconRail.tsx b/surfsense_web/components/layout/ui/icon-rail/IconRail.tsx index c4b127c63..fdc4930d6 100644 --- a/surfsense_web/components/layout/ui/icon-rail/IconRail.tsx +++ b/surfsense_web/components/layout/ui/icon-rail/IconRail.tsx @@ -23,6 +23,8 @@ interface IconRailProps { onNavItemClick?: (item: NavItem) => void; user: User; onUserSettings?: () => void; + onAnnouncements?: () => void; + announcementUnreadCount?: number; onLogout?: () => void; theme?: string; setTheme?: (theme: "light" | "dark" | "system") => void; @@ -42,6 +44,8 @@ export function IconRail({ onNavItemClick, user, onUserSettings, + onAnnouncements, + announcementUnreadCount = 0, onLogout, theme, setTheme, @@ -138,6 +142,8 @@ export function IconRail({