Merge pull request 'Se configuro el side bar para que mantenga abierto los catalogos fijos' (#423) from fix/catalogos-fijos-lista into development
Reviewed-on: ADUANASOFT/anexo76#423
This commit is contained in:
@@ -5,6 +5,7 @@
|
|||||||
import { useSidebar } from '$lib/components/ui/sidebar/context.svelte.js';
|
import { useSidebar } from '$lib/components/ui/sidebar/context.svelte.js';
|
||||||
import ChevronRight from '@lucide/svelte/icons/chevron-right';
|
import ChevronRight from '@lucide/svelte/icons/chevron-right';
|
||||||
import { authStore, userHasPermission } from '$lib/auth';
|
import { authStore, userHasPermission } from '$lib/auth';
|
||||||
|
import { page } from '$app/state';
|
||||||
|
|
||||||
let {
|
let {
|
||||||
items
|
items
|
||||||
@@ -23,6 +24,11 @@
|
|||||||
}[];
|
}[];
|
||||||
} = $props();
|
} = $props();
|
||||||
|
|
||||||
|
function isUrlActive(url: string): boolean {
|
||||||
|
const pathname = page.url.pathname;
|
||||||
|
return pathname === url || pathname.startsWith(url + '/');
|
||||||
|
}
|
||||||
|
|
||||||
// Filtrar items según permisos (si el item tiene la propiedad 'permission')
|
// Filtrar items según permisos (si el item tiene la propiedad 'permission')
|
||||||
const filteredItems = $derived(
|
const filteredItems = $derived(
|
||||||
items
|
items
|
||||||
@@ -195,7 +201,10 @@
|
|||||||
</Sidebar.MenuItem>
|
</Sidebar.MenuItem>
|
||||||
{:else}
|
{:else}
|
||||||
<!-- Sidebar Expandido: Collapsible original -->
|
<!-- Sidebar Expandido: Collapsible original -->
|
||||||
<Collapsible.Root open={item.isActive} class="group/collapsible">
|
<Collapsible.Root
|
||||||
|
open={item.isActive || item.items?.some((sub) => isUrlActive(sub.url))}
|
||||||
|
class="group/collapsible"
|
||||||
|
>
|
||||||
{#snippet child({ props })}
|
{#snippet child({ props })}
|
||||||
<Sidebar.MenuItem {...props}>
|
<Sidebar.MenuItem {...props}>
|
||||||
<Collapsible.Trigger>
|
<Collapsible.Trigger>
|
||||||
@@ -215,7 +224,7 @@
|
|||||||
<Sidebar.MenuSub>
|
<Sidebar.MenuSub>
|
||||||
{#each item.items as subItem (subItem.title)}
|
{#each item.items as subItem (subItem.title)}
|
||||||
<Sidebar.MenuSubItem>
|
<Sidebar.MenuSubItem>
|
||||||
<Sidebar.MenuSubButton>
|
<Sidebar.MenuSubButton isActive={isUrlActive(subItem.url)}>
|
||||||
{#snippet child({ props })}
|
{#snippet child({ props })}
|
||||||
<a href={subItem.url} {...props}>
|
<a href={subItem.url} {...props}>
|
||||||
<span>{subItem.title}</span>
|
<span>{subItem.title}</span>
|
||||||
|
|||||||
Reference in New Issue
Block a user