update route method
This commit is contained in:
@ -83,10 +83,10 @@ const closeSideBar = () => menu.toggleSidebar()
|
||||
<template v-for="item in menu.navigation" :key="item.name">
|
||||
<!-- Single-level item -->
|
||||
<AsideMenuSingle v-if="item.children.length === 0" :item="item"
|
||||
:selected="isMenu(item.href)" />
|
||||
:selected="isMenu(item.path)" />
|
||||
|
||||
<!-- Nested item with children -->
|
||||
<AsideMenuMultiple v-else :item="item" :selected="isMenu(item.href)" />
|
||||
<AsideMenuMultiple v-else :item="item" :selected="isMenu(item.path)" />
|
||||
</template>
|
||||
</nav>
|
||||
</div>
|
||||
@ -120,10 +120,10 @@ const closeSideBar = () => menu.toggleSidebar()
|
||||
<nav class="flex-1 px-2 pb-4 space-y-1">
|
||||
<template v-for="item in menu.navigation" :key="item.name">
|
||||
<!-- Single-level item -->
|
||||
<AsideMenuSingle v-if="item.children.length === 0" :item="item" :selected="isMenu(item.href)" />
|
||||
<AsideMenuSingle v-if="item.children.length === 0" :item="item" :selected="isMenu(item.path)" />
|
||||
|
||||
<!-- Nested item with children -->
|
||||
<AsideMenuMultiple v-else :item="item" :selected="isMenu(item.href)" />
|
||||
<AsideMenuMultiple v-else :item="item" :selected="isMenu(item.path)" />
|
||||
</template>
|
||||
</nav>
|
||||
</div>
|
||||
|
@ -27,7 +27,7 @@ const isMenu = (name: string) => {
|
||||
}
|
||||
|
||||
const isMenuSelected = computed(() => {
|
||||
return props.item.children.find((d) => d.href === menu.menuSelected) || props.item.children.find((d) => d.children.find((e) => e.href === menu.menuSelected))
|
||||
return props.item.children.find((d) => d.path === menu.menuSelected) || props.item.children.find((d) => d.children.find((e) => e.path === menu.menuSelected))
|
||||
})
|
||||
</script>
|
||||
|
||||
@ -35,7 +35,7 @@ const isMenuSelected = computed(() => {
|
||||
<div :class="[isChildren ? 'ml-2 mt-1 bg-primary-100 rounded-xl' : '']">
|
||||
<Disclosure v-bind:default-open="isMenuSelected ? true : false" as="dev">
|
||||
<!-- Nested item with children -->
|
||||
<DisclosureButton @click="menu.toggleSidebarMenu(item.href, !item.expanded)"
|
||||
<DisclosureButton @click="menu.toggleSidebarMenu(item.path, !item.expanded)"
|
||||
:class="[(isMenuSelected || item.expanded || isChildren || item.expanded) ? 'bg-primary-100 text-primary-500 font-bold' : 'text-gray-600 font-semibold text-aside hover:bg-primary-100 hover:text-primary-500', isChildren ? 'pl-1 pr-2' : 'px-2', 'group w-full flex items-center py-2 text-left text-xs rounded-lg focus:outline-none focus:ring-0']">
|
||||
<embed :src="isChildren ? DotOutline : item.icon"
|
||||
:class="[isMenuSelected ? 'fill-primary-500' : 'fill-gray-400 group-hover:fill-gray-500', isChildren ? '' : 'mr-2', 'flex-shrink-0 w-6 h-6']"
|
||||
@ -56,12 +56,12 @@ const isMenuSelected = computed(() => {
|
||||
<div v-show="item.expanded">
|
||||
<DisclosurePanel :class="['bg-primary-100 rounded-xl ml-4', 'space-y-1']" static>
|
||||
<!-- Nested children -->
|
||||
<template v-for="(subItem, index) in item.children" :key="subItem.href">
|
||||
<template v-for="(subItem, index) in item.children" :key="subItem.path">
|
||||
<!-- Single-level child -->
|
||||
<AsideMenuSingle v-if="subItem.children.length === 0" :item="subItem" :is-children="true"
|
||||
:selected="isMenu(subItem.href)" />
|
||||
:selected="isMenu(subItem.path)" />
|
||||
<!-- Multiple-level child -->
|
||||
<AsideMenuMultiple v-else :item="subItem" :selected="subItem.href === menu.menuSelected"
|
||||
<AsideMenuMultiple v-else :item="subItem" :selected="subItem.path === menu.menuSelected"
|
||||
:is-children="true" />
|
||||
</template>
|
||||
</DisclosurePanel>
|
||||
|
@ -19,7 +19,7 @@ defineProps({
|
||||
|
||||
<template>
|
||||
<div class="group">
|
||||
<RouterLink :to="item.href"
|
||||
<RouterLink :to="item.path"
|
||||
:class="[selected ? 'bg-primary-500 text-white font-bold' : 'font-semibold text-aside group-hover:bg-primary-100 text-gray-600 group-hover:text-white group-hover:bg-primary-500', 'w-full flex items-center pl-2 pr-4 py-2 text-xs rounded-xl', isChildren ? 'mt-1' : 'mt-0']">
|
||||
|
||||
<svg v-if="isChildren" :class="[selected ? 'stroke-white' : 'text-aside group-hover:stroke-white', 'h-6 w-6']"
|
||||
|
14
src/components/Pages/TestPage.vue
Normal file
14
src/components/Pages/TestPage.vue
Normal file
@ -0,0 +1,14 @@
|
||||
<template>
|
||||
<div class="flex flex-col items-center justify-center px-6 text-center whitespace-pre-wrap h-screen-80">
|
||||
<h3 class="mt-2 text-gray-400 whitespace-pre-wrap text-md">
|
||||
Selamat datang di aplikasi
|
||||
</h3>
|
||||
<h1 class="mt-1 text-2xl font-semibold text-gray-500 whitespace-pre-wrap">
|
||||
{{ appName }}
|
||||
</h1>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
const appName = import.meta.env.VITE_APP_NAME
|
||||
</script>
|
Reference in New Issue
Block a user