|
|
@ -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={() => { |
|
|
|