<template>
  <div class="header grid min-h-sm w-full flex flex-col">
    <div class="w-full h-[100px] flex max-w-screen-xl my-0 mx-auto justify-between items-center">
      <div class="logo">
        <a href="/"> <img src="@/assets/img/logo_4dge_cn.png" alt="logo" /></a>
      </div>
      <div class="menu">
        <n-dropdown :options="options" @select="handleSelect">
          <n-button type="primary" ghost>{{ locale === 'zh' ? $t('zh') : $t('en') }}</n-button>
        </n-dropdown>
      </div>
    </div>

    <div class="search-box w-full flex justify-center items-center flex-col">
      <n-h1 class="font-size-[48px] font-500">{{ $t('helperTip') }}</n-h1>

      <n-auto-complete v-model:value="keySearch" :options="searchOptions" class="search-box max-w-[640px]" size="large"
        round :placeholder="$t('enter_key')" blur-after-select
        @select="(index: number) => handleAutoSelect(index, searchOptions)" @keydown.enter="handleSearch">
        <template #prefix>
          <n-icon :component="SearchOutline" />
        </template>
      </n-auto-complete>
    </div>
  </div>
</template>
<script setup lang="ts">
import { NH1, NIcon, NDropdown, NAutoComplete, NButton } from 'naive-ui'
import { SearchOutline } from '@vicons/ionicons5'
import { computedAsync } from '@vueuse/core'
import { getArticleSearch } from '@/api'

const { t, locale } = useI18n()

const keySearch = ref('')
const router = useRouter()

const options = ref([
  {
    label: t('zh'),
    key: 'zh',
  },
  {
    label: t('en'),
    key: 'en',
  },
])



const searchOptions = computedAsync(
  async () => {
    if (keySearch.value) {
      const list = await getArticleSearch(keySearch.value)
      console.log('list', list.data)
      return Array.from(list.data || []).map((suffix) => {
        return {
          label: suffix.title,
          value: suffix.id
        }
      })
    }

  },
  null, // initial state
)



const handleSelect = (key: string) => {
  locale.value = key
  localStorage.setItem('locale', key)
  location.reload();

}
onMounted(() => {
  const localeValue = localStorage.getItem('locale') || 'en'
  locale.value = String(localeValue)
  document.title = t('web_title')

})
const handleAutoSelect = (index: number, list: any[]) => {
  const item = list.find((it) => it.value === index)
  // debugger;
  console.log('handleAutoUpdate', item)
  router.push({ path: `/showdoc/${item.value}` })
}
const handleSearch = () => {
  console.log('keySearch', keySearch.value)
  router.push({ path: '/search', query: { key: keySearch.value } })
}
</script>
<style>
.header {
  background-image: url('@/assets/img/banner_bg1.png');
  background-repeat: no-repeat;
  background-size: cover;
  background-position: top center;
}

.search-box .n-input {
  --n-border-radius: 10px !important;
}
</style>
