diff options
Diffstat (limited to 'app/assets/javascripts/super_sidebar/components/nav_item_router_link.vue')
-rw-r--r-- | app/assets/javascripts/super_sidebar/components/nav_item_router_link.vue | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/app/assets/javascripts/super_sidebar/components/nav_item_router_link.vue b/app/assets/javascripts/super_sidebar/components/nav_item_router_link.vue new file mode 100644 index 00000000000..78aca24d9a6 --- /dev/null +++ b/app/assets/javascripts/super_sidebar/components/nav_item_router_link.vue @@ -0,0 +1,37 @@ +<script> +import { NAV_ITEM_LINK_ACTIVE_CLASS } from '../constants'; +import { ariaCurrent } from '../utils'; + +export default { + NAV_ITEM_LINK_ACTIVE_CLASS, + props: { + item: { + type: Object, + required: true, + }, + }, + computed: { + linkProps() { + return { + to: this.item.to, + }; + }, + }, + methods: { + ariaCurrent, + }, +}; +</script> + +<template> + <router-link + #default="{ href, navigate, isActive }" + v-bind="linkProps" + :active-class="$options.NAV_ITEM_LINK_ACTIVE_CLASS" + custom + > + <a :href="href" :aria-current="ariaCurrent(isActive)" @click="navigate"> + <slot :is-active="isActive"></slot> + </a> + </router-link> +</template> |