<script lang="ts" setup>
definePageMeta({
  wideLayout: true,
})

const { t } = useI18n()

useHydratedHead({
  title: () => t('nav.settings'),
})

const route = useRoute()

const isRootPath = computedEager(() => route.name === 'settings')
</script>

<template>
  <div>
    <div min-h-screen flex>
      <div border="e base" :class="isRootPath ? 'block lg:flex-none flex-1' : 'hidden lg:block'">
        <MainContent>
          <template #title>
            <div timeline-title-style flex items-center gap-2 @click="$scrollToTop">
              <div i-ri:settings-3-line />
              <span>{{ isHydrated ? $t('nav.settings') : '' }}</span>
            </div>
          </template>
          <div xl:w-97 lg:w-78 w-full>
            <SettingsItem
              v-if="isHydrated && currentUser "
              command
              icon="i-ri:user-line"
              :text="$t('settings.profile.label')"
              to="/settings/profile"
              :match="$route.path.startsWith('/settings/profile/')"
            />
            <SettingsItem
              command
              icon="i-ri-compasses-2-line"
              :text="isHydrated ? $t('settings.interface.label') : ''"
              to="/settings/interface"
              :match="$route.path.startsWith('/settings/interface/')"
            />
            <SettingsItem
              v-if="isHydrated && currentUser"
              command
              icon="i-ri:notification-badge-line"
              :text="$t('settings.notifications_settings')"
              to="/settings/notifications"
              :match="$route.path.startsWith('/settings/notifications/')"
            />
            <SettingsItem
              command
              icon="i-ri-globe-line"
              :text="isHydrated ? $t('settings.language.label') : ''"
              to="/settings/language"
              :match="$route.path.startsWith('/settings/language/')"
            />
            <SettingsItem
              command
              icon="i-ri-equalizer-line"
              :text="isHydrated ? $t('settings.preferences.label') : ''"
              to="/settings/preferences"
              :match="$route.path.startsWith('/settings/preferences/')"
            />
            <SettingsItem
              command
              icon="i-ri-group-line"
              :text="isHydrated ? $t('settings.users.label') : ''"
              to="/settings/users"
              :match="$route.path.startsWith('/settings/users/')"
            />
            <SettingsItem
              command
              icon="i-ri:information-line"
              :text="isHydrated ? $t('settings.about.label') : ''"
              to="/settings/about"
              :match="$route.path.startsWith('/settings/about/')"
            />
          </div>
        </MainContent>
      </div>
      <div flex-1 :class="isRootPath ? 'hidden lg:block' : 'block'">
        <ClientOnly>
          <NuxtPage />
        </ClientOnly>
      </div>
    </div>
  </div>
</template>
