<template>
  <v-breadcrumbs :items="items" />
</template>

<script setup lang="ts">
import { computed } from '@vue/reactivity'
import type { ComputedRef } from '@vue/reactivity'
import type { AnyJson } from '~/types/data'
import { useI18n } from 'vue-i18n'
import UrlUtils from '~/services/utils/urlUtils'

const runtimeConfig = useRuntimeConfig()
const i18n = useI18n()
const router = useRouter()

const items: ComputedRef<Array<AnyJson>> = computed(() => {
  const crumbs: Array<AnyJson> = []

  crumbs.push({
    title: i18n.t('welcome'),
    href: UrlUtils.join(runtimeConfig.baseUrlAdminLegacy, '#', 'dashboard'),
  })

  const pathPart: Array<string> = UrlUtils.split(router.currentRoute.value.path)

  let path: string = ''

  pathPart.forEach((part) => {
    path = UrlUtils.join(path, part)

    let match

    match = router.resolve(path)
    if (match.name) {
      crumbs.push({
        title: !parseInt(part, 10)
          ? i18n.t(part + '_breadcrumbs')
          : i18n.t('item'),
        exact: true,
        to: path,
      })
    }
  })

  return crumbs
})
</script>

<style scoped lang="scss">
:deep(a.v-breadcrumbs-item--disabled) {
  color: rgb(var(--v-theme-on-neutral)) !important;
  opacity: 1 !important;
}
</style>
