<template>
  <div class="page-container">
    <div v-if="pending" class="flex justify-center items-center h-64">
      <el-skeleton :rows="6" animated />
    </div>
    <div v-else>
      <support-tabs model-value="faq" />
      <div class="page-header">
        <h1 class="page-title">{{ $t('navigation.faq') }}</h1>
        <el-breadcrumb class="breadcrumb" separator="/">
          <el-breadcrumb-item class="text-md opacity-50">
            <NuxtLink :to="$localePath('/')">{{
              $t('navigation.home')
            }}</NuxtLink>
          </el-breadcrumb-item>
          <el-breadcrumb-item class="text-md opacity-50">
            <NuxtLink :to="$localePath('/support')">{{
              $t('navigation.support')
            }}</NuxtLink>
          </el-breadcrumb-item>
          <el-breadcrumb-item class="text-md opacity-50">
            <NuxtLink :to="$localePath('/support/faq')">{{
              $t('navigation.faq')
            }}</NuxtLink>
          </el-breadcrumb-item>
        </el-breadcrumb>
      </div>
      <div class="page-content">
        <question-list :questions="questions" />
      </div>
    </div>
  </div>
</template>

<script setup lang="ts">
  const { find } = useStrapi();
  const { getStrapiLocale } = useLocalizations();
  const strapiLocale = getStrapiLocale();

  const { data, pending, error } = useAsyncData('questions', () =>
    find<Question>('questions', {
      locale: strapiLocale,
    })
  );

  const questions = computed(() => data.value?.data ?? null);

  watch(error, (value) => {
    if (value) {
      console.error('数据获取失败: ', value);
    }
  });
</script>

<style scoped>
  .page-container {
    max-width: 1200px;
    margin: 0 auto;
  }

  .page-header {
    display: flex;
    padding: 2rem 2rem 0rem;
  }

  .page-title {
    font-size: 2rem;
    font-weight: bold;
    color: var(--el-color-primary);
    margin-bottom: 1rem;
  }

  .breadcrumb {
    margin-left: auto;
  }

  .page-content {
    padding: 1rem 2rem 2rem;
  }
</style>
