diff --git a/resources/js/components/AppHeader.vue b/resources/js/components/AppHeader.vue index 40e454f8..0dc05e43 100644 --- a/resources/js/components/AppHeader.vue +++ b/resources/js/components/AppHeader.vue @@ -29,11 +29,12 @@ import { TooltipTrigger, } from '@/components/ui/tooltip'; import UserMenuContent from '@/components/UserMenuContent.vue'; +import { useActiveUrl } from '@/composables/useActiveUrl'; import { getInitials } from '@/composables/useInitials'; -import { toUrl, urlIsActive } from '@/lib/utils'; import { dashboard } from '@/routes'; import type { BreadcrumbItem, NavItem } from '@/types'; -import { InertiaLinkProps, Link, usePage } from '@inertiajs/vue3'; +import type { InertiaLinkProps } from '@inertiajs/vue3'; +import { Link, usePage } from '@inertiajs/vue3'; import { BookOpen, Folder, LayoutGrid, Menu, Search } from 'lucide-vue-next'; import { computed } from 'vue'; @@ -47,18 +48,13 @@ const props = withDefaults(defineProps(), { const page = usePage(); const auth = computed(() => page.props.auth); +const { urlIsActive, toUrl } = useActiveUrl(); -const isCurrentRoute = computed( - () => (url: NonNullable) => - urlIsActive(url, page.url), -); - -const activeItemStyles = computed( - () => (url: NonNullable) => - isCurrentRoute.value(toUrl(url)) - ? 'text-neutral-900 dark:bg-neutral-800 dark:text-neutral-100' - : '', -); +function activeItemStyles(url: NonNullable) { + return urlIsActive(url) + ? 'text-neutral-900 dark:bg-neutral-800 dark:text-neutral-100' + : ''; +} const mainNavItems: NavItem[] = [ { @@ -179,7 +175,7 @@ const rightNavItems: NavItem[] = [ {{ item.title }}
diff --git a/resources/js/components/NavFooter.vue b/resources/js/components/NavFooter.vue index 6ae1d5f2..4bf2ceca 100644 --- a/resources/js/components/NavFooter.vue +++ b/resources/js/components/NavFooter.vue @@ -6,7 +6,7 @@ import { SidebarMenuButton, SidebarMenuItem, } from '@/components/ui/sidebar'; -import { toUrl } from '@/lib/utils'; +import { useActiveUrl } from '@/composables/useActiveUrl'; import { type NavItem } from '@/types'; interface Props { @@ -15,6 +15,8 @@ interface Props { } defineProps(); + +const { toUrl } = useActiveUrl();