2023-08-24 20:29:11 +00:00
|
|
|
<template>
|
2023-08-28 22:47:22 +00:00
|
|
|
<div v-if="player.episode" class="footer">
|
2023-12-23 21:49:23 +00:00
|
|
|
<Loading v-if="!player.loaded" />
|
2023-08-28 22:47:22 +00:00
|
|
|
<ProgressBar v-if="player.loaded" />
|
|
|
|
<div v-if="player.loaded" class="player">
|
2024-01-10 23:14:15 +00:00
|
|
|
<img :src="player.episode.image">
|
2023-12-24 09:50:25 +00:00
|
|
|
<Infos class="infos" />
|
|
|
|
<Controls class="controls" />
|
2023-08-28 22:47:22 +00:00
|
|
|
<Timer class="timer" />
|
|
|
|
<Volume class="volume" />
|
2023-08-24 21:19:54 +00:00
|
|
|
</div>
|
2023-08-27 18:01:26 +00:00
|
|
|
</div>
|
2023-08-24 20:29:11 +00:00
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
2023-08-27 20:20:34 +00:00
|
|
|
import Controls from './Controls.vue'
|
|
|
|
import Infos from './Infos.vue'
|
2023-12-23 21:49:23 +00:00
|
|
|
import Loading from '../Atoms/Loading.vue'
|
2023-08-27 20:20:34 +00:00
|
|
|
import ProgressBar from './ProgressBar.vue'
|
|
|
|
import Timer from './Timer.vue'
|
|
|
|
import Volume from './Volume.vue'
|
2023-08-27 10:45:19 +00:00
|
|
|
|
2023-08-24 20:29:11 +00:00
|
|
|
export default {
|
|
|
|
name: 'Bar',
|
2023-08-27 10:45:19 +00:00
|
|
|
components: {
|
2023-08-27 20:20:34 +00:00
|
|
|
Controls,
|
|
|
|
Infos,
|
2023-12-23 21:49:23 +00:00
|
|
|
Loading,
|
2023-08-27 20:20:34 +00:00
|
|
|
ProgressBar,
|
|
|
|
Timer,
|
|
|
|
Volume,
|
2023-08-27 10:45:19 +00:00
|
|
|
},
|
2023-08-24 20:29:11 +00:00
|
|
|
computed: {
|
2023-08-28 22:47:22 +00:00
|
|
|
player() {
|
|
|
|
return this.$store.state.player
|
2023-08-28 20:40:54 +00:00
|
|
|
},
|
2023-08-28 15:44:17 +00:00
|
|
|
},
|
2023-08-24 20:29:11 +00:00
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped>
|
2023-08-24 21:19:54 +00:00
|
|
|
.footer {
|
2023-08-27 10:45:19 +00:00
|
|
|
background-color: rgba(66, 66, 66, .9);
|
2023-08-24 21:59:55 +00:00
|
|
|
bottom: 0;
|
2023-08-27 10:45:19 +00:00
|
|
|
height: 6rem;
|
2023-08-24 21:59:55 +00:00
|
|
|
right: 0;
|
2023-08-24 20:29:11 +00:00
|
|
|
position: absolute;
|
|
|
|
width: 100%;
|
2023-08-24 21:59:55 +00:00
|
|
|
z-index: 2000;
|
2023-08-24 20:29:11 +00:00
|
|
|
}
|
2023-08-27 10:45:19 +00:00
|
|
|
|
|
|
|
.player {
|
|
|
|
display: flex;
|
|
|
|
gap: 1rem;
|
|
|
|
height: calc(6rem - 6px);
|
2023-08-27 19:33:39 +00:00
|
|
|
justify-content: space-between;
|
2023-08-27 10:45:19 +00:00
|
|
|
}
|
2023-08-27 18:01:26 +00:00
|
|
|
|
2023-08-27 20:20:34 +00:00
|
|
|
.timer {
|
2023-08-28 16:18:25 +00:00
|
|
|
width: 30%;
|
2023-08-27 19:33:39 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
.volume {
|
|
|
|
width: 10%;
|
|
|
|
}
|
2023-12-24 09:50:25 +00:00
|
|
|
|
|
|
|
@media only screen and (max-width: 768px) {
|
|
|
|
.infos {
|
|
|
|
flex: 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
.timer, .volume {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
}
|
2023-08-24 20:29:11 +00:00
|
|
|
</style>
|