Files
evilspins/app/components/deck.vue

56 lines
1.3 KiB
Vue

<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>