<template> <q-btn flat dense :icon="icon" :to="{ name: link }" v-if="isGranted" /> </template> <script lang="ts"> import { computed, defineComponent } from 'vue'; import { hasPermissions } from 'src/utils/permission'; export default defineComponent({ name: 'ShortCutLink', props: { link: { required: true, type: String, }, icon: { required: true, type: String, }, permissions: { default: undefined, }, }, setup(props, { root }) { const isGranted = computed(() => hasPermissions(props.permissions || [], root.$store)); return { isGranted }; }, }); </script>