<template>
  <!-- v-click-outside="closeDrawer" -->
  <div :class="[
    'tw-overflow-auto tw-fixed tw-top-0 tw-bottom-0 tw-left-0 tw-right-0 tw-w-full tw-h-full tw-z-10',
    drawerAcitve ? '' : 'tw-pointer-events-none',
  ]">
    <div :class="[
      'tw-bg-black tw-top-0 tw-bottom-0 tw-left-0 tw-w-full tw-h-full tw-fixed tw-overflow-auto tw-z-10 tw-transition-all tw-duration-600',
      drawerAcitve ? 'tw-opacity-80' : 'tw-pointer-events-none tw-opacity-0',
    ]" @click="closeDrawer"></div>
    <div ref="drawer" :class="[
      'drawer tw-bg-white tw-absolute tw-z-20 tw-overflow-auto tw-px-[20px] tw-py-[30px] tw-w-4/5 tw-h-full tw-transition-all tw-duration-300 tw-delay-75 tw-ease-in-out tw-rounded-none md:tw-px-[40px] md:tw-py-[40px]',
      drawerAcitve ? 'tw-translate-x-0' : '-tw-translate-x-full',
    ]">
      <div class="tw-flex tw-flex-col tw-justify-between tw-h-full">
        <div class="tw-flex tw-flex-col">
          <div class="tw-mb-[25px] tw-pb-[25px] tw-border-0 tw-border-b tw-border-solid tw-border-neutrals-200">
            <a :href="localePath('/exhibition')"
              :class="['tw-block tw-body-3 tw-text-neutral-800 tw-mb-[30px] md:tw-body-2',$route.path.match('\/exhibition') ? 'tw-text-primary-default' : '']">
              {{ $t('Exhibition')}}</a>
            <template v-if="exhibitionsCategory && exhibitionsCategory.length>0">
            <exhibitionList v-for="(item, index) in exhibitionsCategory" :key="item.CategoryID" :exhibitionIndex="index"
              :exhibitionCategory="item" :exhibitionListIcon="exhibitionListIcon[index]" @activeIndex="getActiveIndex"
              :exhibitionsActiveIndex="
                exhibitionsActiveIndex == index ? true : false
              "></exhibitionList>
              </template>
          </div>
          <div class="tw-mb-[25px] tw-pb-[25px] tw-border-0 tw-border-b tw-border-solid tw-border-neutrals-200">
            <a :href="localePath('/service')"
              :class="['tw-block tw-body-3 tw-text-neutral-800 tw-mb-[30px] md:tw-body-2',$route.path.match('\/service') ? 'tw-text-primary-default' : '']">
              {{ $t('Service')}}</a>
            <template v-if="serviceCategory && serviceCategory.length>0">
              <serviceList v-for="(item, index) in serviceCategory" :key="item.CategoryID" :serviceIndex="index"
                :servicecategory="item" :serviceListIcon="serviceListIcon[index]" @activeIndex="getServiceActiveIndex"
                :serviceActiveIndex="serviceActiveIndex == index ? true : false">
              </serviceList>
            </template>
          </div>
          <div>
            <a href="https://medium.com/showeasy" target="_blank" class="tw-body-3 md:tw-body-2 t16 tw-font-normal">{{ $t("Blog") }}</a>
          </div>
        </div>
        <div class="tw-flex-col tw-items-end tw-mt-[40px] tw-pb-[30px] md:tw-mt-[80px] md:tw-pb-[60px]">
          <client-only>
            <changeCurrency></changeCurrency>
          </client-only>
          <div
            class="changeLanguage tw-flex tw-items-center tw-border-solid tw-border-[1px] tw-border-neutrals-200 tw-bg-white tw-text-neutrals-800 tw-rounded-[16px] tw-mb-[16px]">
            <select v-model="lang"
              class="t14 tw-font-normal tw-w-full tw-my-[12px] tw-mx-[25px] md:t16 focus:tw-outline-none">
              <option class="tw-mb-[30px] md:tw-body-3" v-for="(item, index) in $i18n.locales" :key="index"
                :value="item.code">
                {{ item.text }}
              </option>
            </select>
            <img src="@/assets/svg/down-arrow.svg" class="tw-mr-[20px]" alt="" />
          </div>
          <a class="tw-block t14 tw-font-normal tw-border-solid tw-border-[1px] tw-border-neutrals-200 tw-bg-white tw-text-neutrals-800 tw-rounded-[16px] tw-py-[12px] tw-px-[25px] md:t16"
            href="/faq" @click="this.$store.dispatch('toggleDrawer', true)">
            {{ $t("Help") }}
          </a>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
import changeCurrency from "@/components/dropdown/changeCurrency.vue";
import exhibitionList from "@/components/dropdown/exhibitionList.vue";
import serviceList from "@/components/dropdown/serviceList.vue";
import { object } from "is_js";
export default {
  props: {
    serviceCategory: {
      type: Array,
    },
    exhibitionsCategory: {
      type: Array,
    },
    exhibitionListIcon: {
      type: Array
    },
    serviceListIcon: {
      type: Array
    },
  },
  data() {
    return {
      lang: "en",
      // show: false,
      exhibitionsActiveIndex: "",
      serviceActiveIndex: "",
    };
  },
  components: {
    changeCurrency,
    exhibitionList,
    serviceList,
  },
  computed: {
    drawerAcitve() {
      return this.$store.getters.getDrawerStatus;
    },
  },
  created() {
    this.$i18n.locale === "en" ? (this.lang = "en") : (this.lang = "zh-tw");
    // this.contents = [
    //     "Rental cars",
    //     "Flower",
    //     "Hotel",
    //     "SIM Card",
    // ];
  },
  mounted() {
    // vm.$refs.drawer.scrollTo(0, 0);
  },
  methods: {
    closeDrawer() {
      if (this.$store.getters.getDrawerStatus === true) {
        this.$store.dispatch("toggleDrawer", false);
      }
    },
    getActiveIndex(data) {
      this.exhibitionsActiveIndex = data;
    },
    getServiceActiveIndex(data) {
      this.serviceActiveIndex = data;
    },
  },
  watch: {
    lang: {
      handler: function () {
        if (this.lang === "en") {
          this.$i18n.setLocale(this.lang);
        } else {
          this.$i18n.setLocale(this.lang);
        }
        this.$store.dispatch("toggleDrawer", false);
        this.$emit('changeLang', true);
      },
    },
    drawerAcitve: {
      handler: function () {
        if (this.drawerAcitve == true) {
          this.$refs.drawer.scrollTo(0, 0);
        }
      }
    }
  },
};
</script>

<style lang="scss" scoped>
.drawer {
  &.show {
    left: 0;
  }
}

.drawer-title {
  font-weight: 500;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: 0.02em;
  color: #ee9546;
}
</style>