All files / repo/src/components/Sidebar/SidebarLanguageFlags SidebarLanguageFlags.vue

0% Statements 0/23
100% Branches 1/1
100% Functions 1/1
0% Lines 0/23

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36                                                                       
<template>
  <div class="locale-switcher">
    <Button
      v-for="lang in localeOptions"
      :key="lang.code"
      :handleClick="() => setLocale(lang.code)"
      :aria-label="lang.label"
      :active="locale === lang.code"
      variant="round"
    >
      <LazyImage :src="./lang.flag" alt="" className="flag" />
    </Button>
  </div>
</template>
 
<script setup lang="ts">
import { localeOptions } from '@/i18n/locales';
import { loadLocale } from '@/main';
import { useI18n } from 'vue-i18n';
import './SidebarLanguageFlags.scss';
 
defineOptions({
  inheritAttrs: false,
});
defineProps<{}>();
 
const { locale } = useI18n();
const setLocale = async (code: string) => {
  if (code !== locale.value) {
    await loadLocale(code);
    localStorage.setItem('user-locale', code);
    locale.value = code;
  }
};
</script>