<template>
  <q-expansion-item v-if="isGranted(entry)" clickable tag="a" target="self" :label='title' :icon='entry.icon' expand-separator>
      <q-list class='q-ml-lg'>
        <div v-for='child in entry.children' :key='child.link'>
    <q-item v-if='isGranted(child)' clickable :to='{name: child.link}'>
      <q-item-section avatar>
        <q-icon :name='child.icon' />
      </q-item-section>
      <q-item-section>
        <q-item-label>
          {{child.title}}
        </q-item-label>
      </q-item-section>
    </q-item>
        </div>
      </q-list>
  </q-expansion-item>
</template>

<script lang="ts">
import { computed, defineComponent, onMounted, PropType } from 'vue';
import { hasPermissions } from 'src/utils/permission';
import { FG_Plugin } from 'src/plugins';

export default defineComponent({
  name: 'EssentialExpansionLink',
  components: {  },
  props: {
    entry: {
      type: Object as PropType<FG_Plugin.MenuLink>,
      required: true,
    },
  },

  setup(props) {
    function isGranted(val: FG_Plugin.MenuLink) { return hasPermissions(val.permissions || [])};
    const title = computed(() =>
      typeof props.entry.title === 'object' ? props.entry.title.value : props.entry.title
    );
    onMounted(() => {
      console.log(props.entry.children)
    })
    return { isGranted, title };
  },
});
</script>