bucket + card sharer
This commit is contained in:
3
app/pages/story/holo.vue
Normal file
3
app/pages/story/holo.vue
Normal file
@@ -0,0 +1,3 @@
|
||||
<template>
|
||||
holo
|
||||
</template>
|
||||
46
app/pages/story/index.vue
Normal file
46
app/pages/story/index.vue
Normal file
@@ -0,0 +1,46 @@
|
||||
<template>
|
||||
<div class="container">
|
||||
<h1>Liste des pages Story</h1>
|
||||
<ul>
|
||||
<li v-for="page in pages" :key="page.name">
|
||||
<NuxtLink :to="`/story/${page.name}`">
|
||||
{{ page.name }}
|
||||
</NuxtLink>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
const pages = [
|
||||
{ name: 'holo' },
|
||||
{ name: 'mix' },
|
||||
{ name: 'test' }
|
||||
]
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.container {
|
||||
max-width: 800px;
|
||||
margin: 0 auto;
|
||||
padding: 2rem;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
li {
|
||||
margin: 0.5rem 0;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #2563eb;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
</style>
|
||||
60
app/pages/story/mix.vue
Normal file
60
app/pages/story/mix.vue
Normal file
@@ -0,0 +1,60 @@
|
||||
<template>
|
||||
<div class="mix">
|
||||
<Platine :track="track1" />
|
||||
<Platine :track="track2" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { useDataStore } from '~/store/data'
|
||||
|
||||
const dataStore = useDataStore()
|
||||
const track1 = ref(null)
|
||||
const track2 = ref(null)
|
||||
|
||||
// Configuration du layout
|
||||
definePageMeta({
|
||||
layout: 'empty'
|
||||
})
|
||||
|
||||
onMounted(async () => {
|
||||
await dataStore.loadData()
|
||||
track1.value = dataStore.getRandomPlaylistTrack()
|
||||
track2.value = dataStore.getRandomPlaylistTrack()
|
||||
})
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.mix {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
/* Écran portrait (plus haut que large) */
|
||||
@media (orientation: portrait) {
|
||||
.mix {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.platine {
|
||||
height: 50vh;
|
||||
|
||||
.disc {
|
||||
height: 100%;
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Écran paysage (plus large que haut) */
|
||||
@media (orientation: landscape) {
|
||||
.mix {
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.platine {
|
||||
width: 50vw;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
4
app/pages/story/test.vue
Normal file
4
app/pages/story/test.vue
Normal file
@@ -0,0 +1,4 @@
|
||||
<template>
|
||||
<card />
|
||||
<card />
|
||||
</template>
|
||||
Reference in New Issue
Block a user