<script setup>
import data from "@/data.json";
import { useStore } from "@/stores";

const store = useStore();

const translationKey = "languages_id";
const scores = data.filter((score) => {
  return (
    !!score.translations.find(
      (translation) => translation[translationKey] == store.language
    ) &&
    score.results.length &&
    score.questions.length
  );
});
function getTranslation(translations, key) {
  return translations.find((translation) => translation[key] == store.language);
}
</script>

<template>
  <header>
    <ul>
      <li
        v-if="store.theme == ''"
        @click="store.switchTheme"
        title="Thème de votre système"
      >
        🌓
      </li>
      <li
        v-if="store.theme == 'dark'"
        @click="store.switchTheme"
        title="Thème sombre"
      >
        🌑
      </li>
      <li
        v-if="store.theme == 'light'"
        @click="store.switchTheme"
        title="Thème clair"
      >
        🌞
      </li>
    </ul>
    <h1>Scores Ceiba</h1>
    <ul>
      <li v-if="store.language == 'fr-FR'" @click="store.switchLanguage">🇫🇷</li>
      <li v-if="store.language == 'en-US'" @click="store.switchLanguage">🇺🇸</li>
    </ul>
  </header>
  <main>
    <div class="container" v-if="scores">
      <ul>
        <li v-for="score in scores" :key="score.id" :id="`score_${score.id}`">
          <router-link :to="{ name: 'score', params: { id: score.id } }">{{
            getTranslation(score.translations, "languages_id").title
          }}</router-link>
        </li>
      </ul>
    </div>
  </main>
</template>

<style lang="sass" scoped>
header
  height: var(--header-size)
  overflow: hidden
  display: flex
  justify-content: space-around
  align-items: center
  border-bottom: 2px solid var(--color-text)
  background: var(--color-green)

  h1
    text-align: center
    text-transform: uppercase

  ul
    margin: 0
    padding: 0
    list-style: none
    text-align: center
    font-size: 1.5rem

    a
      text-decoration: none

    .hidden
      display: none


main
  width: 100%
  height: calc(100% - var(--header-size))
  padding: 1rem
  display: flex
  justify-content: center
  align-items: center
  overflow: hidden
  background-color: var(--color-highlight)

.container
  position: relative
  width: 100%
  max-width: 440px
  max-height: 100%
  padding-top: calc(100% / (724 / 1136))

  @media only screen and (min-width: 472px)
    padding-top: 0
    width: 440px
    height: calc(440px * 1136 / 724)

  ul
    margin: 0
    padding: 0
    list-style: none

    position: absolute
    top: 0
    left: 0
    bottom: 0
    right: 0

    background-image: url(/arbre.webp)
    background-position: center
    background-repeat: no-repeat
    background-size: contain

    border-radius: 10px

    li
      display: none

      background: rgba(0, 0, 0, .5)
      border-radius: 10px
      position: absolute
      border: 2px solid var(--color-text)

      &#score_1
        display: flex
        top: 40%
        bottom: 35%
        left: 20%
        right: 20%

      &#score_6
        display: flex
        top: 72%
        bottom: 5%
        left: 6%
        right: 6%

    a
      color: var(--color-text)
      display: block
      width: 100%
      height: 100%
      display: flex
      align-items: center
      justify-content: center
      text-align: center
</style>