<template>
  <div>
    <v-btn-toggle tile group v-model="activeIndex">
      <v-btn
        v-for="(sortBy, i) in sortByList"
        :key="`sort_by_${i}`"
        class="sort-by-item text-center remove-upper"
        plain
        height="auto"
        :ripple="false"
        :class="width > 1264 ? '' : 'px-1'"
        :style="width > 1264 ? 'font-size: 16px' : 'font-size: 12px'"
      >
        {{ $t(sortBy.text) }}
      </v-btn>
    </v-btn-toggle>
  </div>
</template>

<script>
export default {
  name: "SortByGroup",
  data: () => ({
    activeIndex: -1,
    sortByList: [
      /*{
        text: "Ratings",
        sort: "sortByRate",
      },
      {
        text: "ShowEasy Recommended",
        sort: "sortByRecommend",
      },*/
      {
        text: "Show Dates",
        sort: "sortByNewest",
      },
      {
        text: "Exhibitor Numbers",
        sort: "sortByExhibitNumber",
      },
      {
        text: "Visitor Numbers",
        sort: "sortByVisitorNumber",
      },
    ],
    width: undefined,
  }),
  created() {
    if (process.client) {
      this.width = window.innerWidth;
    }
  },
  methods: {
    onResize() {
      if (process.client) {
        this.width = window.innerWidth;
      }
    },
  },
  computed: {
    windowWidth() {
      if (process.client) {
        this.width = window.innerWidth;
      }
      return this.width;
    },
  },
  mounted() {
    this.$nextTick(() => {
      window.addEventListener("resize", this.onResize);
    });
  },
  beforeDestroy() {
    window.removeEventListener("resize", this.onResize);
  },
  watch: {
    activeIndex(newIdx, oldIdx) {
      if (newIdx === undefined || newIdx === oldIdx) return;
      this.$emit("change", this.sortByList[newIdx].sort);
    },
  },
};
</script>

<style lang="scss" scoped>
.sort-by-item {
  user-select: none;
  cursor: pointer;
  &:hover {
    color: #ee9546;
  }
  &.v-btn--active {
    color: #ee9546;
  }
}
</style>