Browse Source

Add unread count to "Messages" top level menu

pull/618/head
philon- 1 year ago
parent
commit
00a8a1fb7d
  1. 12
      src/components/Sidebar.tsx

12
src/components/Sidebar.tsx

@ -34,6 +34,7 @@ interface NavLink {
name: string; name: string;
icon: LucideIcon; icon: LucideIcon;
page: Page; page: Page;
count?: number;
} }
const CollapseToggleButton = () => { const CollapseToggleButton = () => {
@ -71,6 +72,7 @@ export const Sidebar = ({ children }: SidebarProps) => {
getNodesLength, getNodesLength,
metadata, metadata,
activePage, activePage,
unreadCounts,
setActivePage, setActivePage,
setDialogOpen, setDialogOpen,
} = useDevice(); } = useDevice();
@ -79,8 +81,15 @@ export const Sidebar = ({ children }: SidebarProps) => {
const { isCollapsed } = useSidebar(); const { isCollapsed } = useSidebar();
const myMetadata = metadata.get(0); const myMetadata = metadata.get(0);
const numUnread = [...unreadCounts.values()].reduce((sum, v) => sum + v, 0);
const pages: NavLink[] = [ const pages: NavLink[] = [
{ name: "Messages", icon: MessageSquareIcon, page: "messages" }, {
name: "Messages",
icon: MessageSquareIcon,
page: "messages",
count: numUnread ? numUnread : undefined,
},
{ name: "Map", icon: MapIcon, page: "map" }, { name: "Map", icon: MapIcon, page: "map" },
{ name: "Config", icon: SettingsIcon, page: "config" }, { name: "Config", icon: SettingsIcon, page: "config" },
{ name: "Channels", icon: LayersIcon, page: "channels" }, { name: "Channels", icon: LayersIcon, page: "channels" },
@ -130,6 +139,7 @@ export const Sidebar = ({ children }: SidebarProps) => {
{pages.map((link) => ( {pages.map((link) => (
<SidebarButton <SidebarButton
key={link.name} key={link.name}
count={link.count}
label={link.name} label={link.name}
Icon={link.icon} Icon={link.icon}
onClick={() => { onClick={() => {

Loading…
Cancel
Save