refactor: fix React keys and cleanup effect dependencies in sidebar

This commit is contained in:
2026-05-12 00:50:46 +02:00
parent 1ec992caf6
commit e75cd424e3
2 changed files with 5 additions and 5 deletions
+3 -3
View File
@@ -88,7 +88,7 @@ export default function AppSidebar({
<SidebarGroup> <SidebarGroup>
<SidebarGroupContent> <SidebarGroupContent>
<SidebarMenu> <SidebarMenu>
{items.map((item, index) => { {items.map((item) => {
if (item.type === "item") { if (item.type === "item") {
const isActive = const isActive =
item.url === "/" item.url === "/"
@@ -96,7 +96,7 @@ export default function AppSidebar({
: pathname.startsWith(item.url) : pathname.startsWith(item.url)
return ( return (
<SidebarMenuItem key={`item-${index}`}> <SidebarMenuItem key={`item-${item}`}>
<SidebarMenuButton asChild isActive={isActive}> <SidebarMenuButton asChild isActive={isActive}>
<Link href={item.url}> <Link href={item.url}>
<item.icon className="mr-2 h-4 w-4" /> <item.icon className="mr-2 h-4 w-4" />
@@ -109,7 +109,7 @@ export default function AppSidebar({
if (item.type === "section") { if (item.type === "section") {
return ( return (
<SidebarSection <SidebarSection
key={`section-${index}`} key={`section-${item}`}
title={item.title} title={item.title}
icon={item.icon} icon={item.icon}
items={item.items} items={item.items}
@@ -34,7 +34,7 @@ export function SidebarSection({
useEffect(() => { useEffect(() => {
setOpen(isAnySubActive) setOpen(isAnySubActive)
}, [isAnySubActive, pathname]) }, [isAnySubActive])
return ( return (
<Collapsible <Collapsible
@@ -55,7 +55,7 @@ export function SidebarSection({
{items?.map((subItem, i) => { {items?.map((subItem, i) => {
const isActive = pathname.startsWith(subItem.url) const isActive = pathname.startsWith(subItem.url)
return ( return (
<SidebarMenuSubItem key={i}> <SidebarMenuSubItem key={i++}>
<SidebarMenuSubButton asChild isActive={isActive}> <SidebarMenuSubButton asChild isActive={isActive}>
<Link href={subItem.url}>{subItem.title}</Link> <Link href={subItem.url}>{subItem.title}</Link>
</SidebarMenuSubButton> </SidebarMenuSubButton>