mirror of
https://github.com/VueTubeApp/VueTube
synced 2024-11-25 12:45:17 +00:00
shorts vertical fullscreen controls layout, fixes #417
This commit is contained in:
parent
e06364c1b2
commit
67151d794c
3 changed files with 76 additions and 26 deletions
64
NUXT/components/Player/fscontrols.vue
Normal file
64
NUXT/components/Player/fscontrols.vue
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
<template>
|
||||||
|
<div
|
||||||
|
v-if="isFullscreen"
|
||||||
|
class="debug"
|
||||||
|
:style="
|
||||||
|
verticalFullscreen
|
||||||
|
? 'position: absolute; height: calc(100vh - 14rem); bottom: 7rem; right: 0;'
|
||||||
|
: ''
|
||||||
|
"
|
||||||
|
:class="verticalFullscreen ? 'd-flex flex-column justify-end' : ''"
|
||||||
|
>
|
||||||
|
<v-btn
|
||||||
|
v-for="(item, index) in interactions"
|
||||||
|
:key="index"
|
||||||
|
fab
|
||||||
|
text
|
||||||
|
small
|
||||||
|
color="white"
|
||||||
|
:class="verticalFullscreen ? 'ma-2' : 'mr-2'"
|
||||||
|
:disabled="item.disabled"
|
||||||
|
>
|
||||||
|
<v-icon v-text="item.icon" />
|
||||||
|
</v-btn>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
isFullscreen: {
|
||||||
|
type: Boolean,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
verticalFullscreen: {
|
||||||
|
type: Boolean,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data: () => ({
|
||||||
|
interactions: [
|
||||||
|
{
|
||||||
|
icon: "mdi-thumb-up-outline",
|
||||||
|
disabled: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: "mdi-thumb-down-outline",
|
||||||
|
disabled: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: "mdi-share-outline",
|
||||||
|
disabled: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: "mdi-comment-text-outline",
|
||||||
|
disabled: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: "mdi-plus-box-multiple-outline",
|
||||||
|
disabled: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
</script>
|
|
@ -217,26 +217,13 @@
|
||||||
<!-- bottom controls row -->
|
<!-- bottom controls row -->
|
||||||
<div
|
<div
|
||||||
style="position: absolute; width: 100%; bottom: 0.5rem"
|
style="position: absolute; width: 100%; bottom: 0.5rem"
|
||||||
class="d-flex justify-between align-center px-2"
|
class="debug d-flex justify-between align-center px-2"
|
||||||
@click.self="controlsHandler()"
|
@click.self="controlsHandler()"
|
||||||
>
|
>
|
||||||
<div v-if="isFullscreen">
|
<fscontrols
|
||||||
<v-btn fab text small color="white" class="mr-2" disabled>
|
:is-fullscreen="isFullscreen"
|
||||||
<v-icon>mdi-thumb-up-outline</v-icon>
|
:vertical-fullscreen="verticalFullscreen"
|
||||||
</v-btn>
|
/>
|
||||||
<v-btn fab text small color="white" class="mr-2" disabled>
|
|
||||||
<v-icon>mdi-thumb-down-outline</v-icon>
|
|
||||||
</v-btn>
|
|
||||||
<v-btn fab text small color="white" class="mr-2" disabled>
|
|
||||||
<v-icon>mdi-share-outline</v-icon>
|
|
||||||
</v-btn>
|
|
||||||
<v-btn fab text small color="white" class="mr-2" disabled>
|
|
||||||
<v-icon>mdi-plus-box-multiple-outline</v-icon>
|
|
||||||
</v-btn>
|
|
||||||
<v-btn fab text small color="white" class="mr-2" disabled>
|
|
||||||
<v-icon>mdi-comment-text-outline</v-icon>
|
|
||||||
</v-btn>
|
|
||||||
</div>
|
|
||||||
<v-spacer />
|
<v-spacer />
|
||||||
<!-- // TODO: merge the bottom 2 into 1 reusable component -->
|
<!-- // TODO: merge the bottom 2 into 1 reusable component -->
|
||||||
<quality
|
<quality
|
||||||
|
@ -313,6 +300,7 @@ import minimize from "~/components/Player/minimize.vue";
|
||||||
import captions from "~/components/Player/captions.vue";
|
import captions from "~/components/Player/captions.vue";
|
||||||
import playpause from "~/components/Player/playpause.vue";
|
import playpause from "~/components/Player/playpause.vue";
|
||||||
import watchtime from "~/components/Player/watchtime.vue";
|
import watchtime from "~/components/Player/watchtime.vue";
|
||||||
|
import fscontrols from "~/components/Player/fscontrols.vue";
|
||||||
import fullscreen from "~/components/Player/fullscreen.vue";
|
import fullscreen from "~/components/Player/fullscreen.vue";
|
||||||
import progressbar from "~/components/Player/progressbar.vue";
|
import progressbar from "~/components/Player/progressbar.vue";
|
||||||
import sponsorblock from "~/components/Player/sponsorblock.vue";
|
import sponsorblock from "~/components/Player/sponsorblock.vue";
|
||||||
|
@ -321,6 +309,7 @@ export default {
|
||||||
sponsorblock,
|
sponsorblock,
|
||||||
progressbar,
|
progressbar,
|
||||||
fullscreen,
|
fullscreen,
|
||||||
|
fscontrols,
|
||||||
watchtime,
|
watchtime,
|
||||||
playpause,
|
playpause,
|
||||||
captions,
|
captions,
|
||||||
|
|
|
@ -27,13 +27,10 @@
|
||||||
>
|
>
|
||||||
<div class="d-flex flex-column">
|
<div class="d-flex flex-column">
|
||||||
<v-card-title
|
<v-card-title
|
||||||
class="pa-0 text-wrap"
|
|
||||||
style="
|
|
||||||
font-size: 0.95rem;
|
|
||||||
line-height: 1.15rem;
|
|
||||||
"
|
|
||||||
v-text="video.title"
|
|
||||||
v-emoji
|
v-emoji
|
||||||
|
class="pa-0 text-wrap"
|
||||||
|
style="font-size: 0.95rem; line-height: 1.15rem"
|
||||||
|
v-text="video.title"
|
||||||
/>
|
/>
|
||||||
<v-card-text
|
<v-card-text
|
||||||
style="font-size: 0.75rem"
|
style="font-size: 0.75rem"
|
||||||
|
@ -52,8 +49,8 @@
|
||||||
</div>
|
</div>
|
||||||
</v-card-text>
|
</v-card-text>
|
||||||
</div>
|
</div>
|
||||||
<v-icon class="ml-4" v-if="showMore">mdi-chevron-up</v-icon>
|
<v-icon v-if="showMore" class="ml-4">mdi-chevron-up</v-icon>
|
||||||
<v-icon class="ml-4" v-else>mdi-chevron-down</v-icon>
|
<v-icon v-else class="ml-4">mdi-chevron-down</v-icon>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="d-flex px-4"
|
class="d-flex px-4"
|
||||||
|
|
Loading…
Reference in a new issue