Playlist page improvements (#2281)

* Add hover visual on thumbnails

* Fix white-space issues on playlist description

* Fix playlist issues with scrolling

* Fix end of file new lines

* Fix dropdown not visible issue

* Fix mobile styling

* Clean up using flex

* Fix lint issue
This commit is contained in:
vallode 2022-06-04 23:51:18 +02:00 committed by GitHub
parent 492c48dcf8
commit fd46b22f91
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 78 additions and 30 deletions

View File

@ -1 +1,4 @@
@use "../../sass-partials/_ft-list-item" @use "../../sass-partials/_ft-list-item"
.thumbnailLink:hover
outline: 3px solid var(--side-nav-hover-color)

View File

@ -3,32 +3,44 @@
.playlistThumbnail img .playlistThumbnail img
width: 100% width: 100%
cursor: pointer cursor: pointer
@media only screen and (max-width: 800px)
display: none
.playlistStats
font-size: 15px
.playlistStats p
color: var(--secondary-text-color)
margin: 0
.playlistTitle
margin-bottom: 0.1em
.playlistDescription .playlistDescription
max-height: 20vh max-height: 20vh
overflow-y: auto overflow-y: auto
white-space: break-spaces
@media only screen and (max-width: 500px) @media only screen and (max-width: 500px)
max-height: 10vh max-height: 10vh
.playlistChannel .playlistChannel
height: 70px display: flex
align-items: center
gap: 8px
height: 40px
/* Indicates the box can be clicked to navigate */ /* Indicates the box can be clicked to navigate */
cursor: pointer cursor: pointer
.channelThumbnail .channelThumbnail
width: 70px width: 40px
float: left float: left
border-radius: 200px 200px 200px 200px border-radius: 200px 200px 200px 200px
-webkit-border-radius: 200px 200px 200px 200px -webkit-border-radius: 200px 200px 200px 200px
.channelName .channelName
float: left margin: 0
position: relative
width: 200px
margin-left: 10px
top: 5px
font-size: 15px font-size: 15px

View File

@ -8,22 +8,27 @@
@click="playFirstVideo" @click="playFirstVideo"
> >
</div> </div>
<h2>
{{ title }} <div class="playlistStats">
</h2> <h2 class="playlistTitle">
<p> {{ title }}
{{ videoCount }} {{ $t("Playlist.Videos") }} - <span v-if="!hideViews">{{ viewCount }} {{ $t("Playlist.Views") }} -</span> </h2>
<span v-if="infoSource !== 'local'"> <p>
{{ $t("Playlist.Last Updated On") }} {{ videoCount }} {{ $t("Playlist.Videos") }} - <span v-if="!hideViews">{{ viewCount }} {{ $t("Playlist.Views") }} -</span>
</span> <span v-if="infoSource !== 'local'">
{{ lastUpdated }} {{ $t("Playlist.Last Updated On") }}
</p> </span>
{{ lastUpdated }}
</p>
</div>
<p <p
class="playlistDescription" class="playlistDescription"
> v-text="description"
{{ description }} />
</p>
<hr> <hr>
<div <div
class="playlistChannel" class="playlistChannel"
@click="goToChannel" @click="goToChannel"
@ -38,7 +43,9 @@
{{ channelName }} {{ channelName }}
</h3> </h3>
</div> </div>
<br> <br>
<ft-list-dropdown <ft-list-dropdown
:title="$t('Playlist.Share Playlist.Share Playlist')" :title="$t('Playlist.Share Playlist.Share Playlist')"
:label-names="shareHeaders" :label-names="shareHeaders"

View File

@ -1,18 +1,42 @@
.routerView {
display: flex;
}
.playlistInfo { .playlistInfo {
background-color: var(--card-bg-color); background-color: var(--card-bg-color);
padding: 10px; box-sizing: border-box;
float: left; height: calc(100vh - 96px);
position: fixed; margin-right: 1em;
top: 60px;
width: 30%;
height: 100%;
overflow-y: auto; overflow-y: auto;
padding: 10px;
position: sticky;
top: 78px;
width: 30%;
} }
.playlistItems { .playlistItems {
float: right;
width: 60%;
padding: 10px;
display: grid; display: grid;
grid-gap: 10px; grid-gap: 10px;
margin: 0;
padding: 10px;
width: 60%;
}
@media only screen and (max-width: 800px) {
.routerView {
flex-direction: column;
}
.playlistInfo {
box-sizing: border-box;
position: relative;
top: 0;
height: auto;
width: 100%;
}
.playlistItems {
box-sizing: border-box;
width: 100%;
}
} }

View File

@ -4,11 +4,13 @@
v-if="isLoading" v-if="isLoading"
:fullscreen="true" :fullscreen="true"
/> />
<playlist-info <playlist-info
v-if="!isLoading" v-if="!isLoading"
:data="infoData" :data="infoData"
class="playlistInfo" class="playlistInfo"
/> />
<ft-card <ft-card
v-if="!isLoading" v-if="!isLoading"
class="playlistItems" class="playlistItems"