<script setup lang="ts">
import { useQuery } from '@tanstack/vue-query'
import { useI18n } from 'vue-i18n'

import KolPersonaCard from '@/components/kol/KolPersonaCard.vue'
import { kolManageApi } from '@/lib/api'
import { formatError } from '@/lib/errors'

const { t } = useI18n()

const profileQuery = useQuery({
  queryKey: ['kol', 'profile'],
  queryFn: () => kolManageApi.profile(),
})
</script>

<template>
  <div class="kol-profile-view">
    <section class="page-title-card">
      <div class="page-title-card__header">
        <div class="page-title-card__copy">
          <h2>{{ t('kol.profile.title') }}</h2>
          <p>{{ t('kol.profile.subtitle') }}</p>
        </div>
      </div>
    </section>

    <a-skeleton v-if="profileQuery.isPending.value" active avatar :paragraph="{ rows: 3 }" />
    <a-alert
      v-else-if="profileQuery.isError.value"
      type="error"
      show-icon
      :message="formatError(profileQuery.error.value) || t('common.noData')"
    />
    <KolPersonaCard v-else-if="profileQuery.data.value" :profile="profileQuery.data.value" />
  </div>
</template>

<style scoped>
.kol-profile-view {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
</style>
