<template>
  <div>
    <div class="deck-order">
      <button @click="orderDeck('pile')">pile</button>
      <button @click="orderDeck('plateau')">plateau</button>
      <button @click="orderDeck('holdem')">holdem</button>
    </div>
    <div ref="deck" class="deck flex flex-wrap justify-center gap-4">
      <card v-for="(track, i) in tracks" :key="track.id" :track="track" tabindex="i"
        @click="() => playerStore.playTrack(track).catch(err => console.error(err))" />
    </div>
  </div>
</template>

<script setup lang="ts">
import { computed, ref } from 'vue'
import { useDataStore } from '~/store/data'
import type { Box } from '~~/types/types'
import { usePlayerStore } from '~/store/player'

const props = defineProps<{
  box: Box
}>()
const dataStore = useDataStore()
const deck = ref()
const tracks = computed(() => dataStore.getTracksByboxId(props.box.id))
const playerStore = usePlayerStore()

function orderDeck(order: string) {
  deck.value.classList.remove('pile', 'plateau', 'holdem')
  deck.value.classList.add(order)
}
</script>

<style lang="scss">
.deck {
  @apply transition-all;

  &.pile {
    @apply relative;

    .card {
      @apply absolute top-0;
    }
  }

  &.plateau {
    @apply mt-8 p-8 w-full flex flex-wrap justify-around;
  }

  &.holdem {
    /* style holdem */
  }
}
</style>
