add folder page banner

This commit is contained in:
geoffrey45
2022-07-18 18:22:17 +03:00
parent cfea978298
commit 4b817af4de
7 changed files with 69 additions and 8 deletions
+2
View File
@@ -46,6 +46,8 @@ const app_dom = document.getElementById("app");
const route = useRoute(); const route = useRoute();
const router = useRouter(); const router = useRouter();
// function to add the
queue.readQueue(); queue.readQueue();
useShortcuts(useQStore); useShortcuts(useQStore);
+5 -5
View File
@@ -13,6 +13,8 @@ $medium: 0.75rem;
$large: 1.5rem; $large: 1.5rem;
$larger: 2rem; $larger: 2rem;
$banner-height: 18rem;
// apple human design guideline colors // apple human design guideline colors
$black: #181a1c; $black: #181a1c;
$white: #ffffffde; $white: #ffffffde;
@@ -24,9 +26,8 @@ $gray3: rgb(72, 72, 74);
$gray4: rgb(58, 58, 60); $gray4: rgb(58, 58, 60);
$gray5: rgb(44, 44, 46); $gray5: rgb(44, 44, 46);
$red: #ff453a;
$red: #FF453A; $blue: #0a84ff;
$blue: #0A84FF;
$darkblue: #055ee2; $darkblue: #055ee2;
$green: rgb(20, 160, 55); $green: rgb(20, 160, 55);
$yellow: rgb(255, 214, 10); $yellow: rgb(255, 214, 10);
@@ -34,10 +35,9 @@ $orange: rgb(255, 159, 10);
$pink: rgb(255, 55, 95); $pink: rgb(255, 55, 95);
$purple: #bf5af2; $purple: #bf5af2;
$brown: rgb(172, 142, 104); $brown: rgb(172, 142, 104);
$indigo: #5E5CE6; $indigo: #5e5ce6;
$teal: rgb(64, 200, 224); $teal: rgb(64, 200, 224);
$primary: $gray4; $primary: $gray4;
$accent: $red; $accent: $red;
$secondary: $gray5; $secondary: $gray5;
+16
View File
@@ -58,6 +58,22 @@ a {
overflow: hidden; overflow: hidden;
} }
.abs {
position: absolute;
}
.pad-small {
padding: $small;
}
.pad-medium {
padding: $medium;
}
.pad-large {
padding: 1rem;
}
.grid { .grid {
display: grid; display: grid;
} }
Binary file not shown.

After

Width:  |  Height:  |  Size: 628 KiB

+2
View File
@@ -108,3 +108,5 @@ export interface FetchProps {
put?: boolean; put?: boolean;
headers?: {}; headers?: {};
} }
+2 -2
View File
@@ -174,11 +174,11 @@ function toggleBottom() {
position: relative; position: relative;
overflow: auto; overflow: auto;
display: grid; display: grid;
grid-template-rows: 18rem 1fr; grid-template-rows: $banner-height 1fr;
gap: 1rem; gap: 1rem;
.ap-page-content { .ap-page-content {
padding-bottom: 17rem; padding-bottom: calc($banner-height - 1rem);
} }
} }
</style> </style>
+42 -1
View File
@@ -1,6 +1,12 @@
<template> <template>
<div id="f-view-parent"> <div id="f-view-parent">
<div id="scrollable" ref="scrollable"> <div id="scrollable" ref="scrollable">
<div class="banner shadow-lg">
<div class="text abs rounded pad-medium">
<h1><FolderSvg /> {{ getFolderName($route) }}</h1>
</div>
<img src="../assets/images/one.jpg" alt="" class="rounded" />
</div>
<FolderList :folders="FStore.dirs" /> <FolderList :folders="FStore.dirs" />
<SongList :tracks="FStore.tracks" :path="FStore.path" /> <SongList :tracks="FStore.tracks" :path="FStore.path" />
</div> </div>
@@ -9,10 +15,11 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref } from "@vue/reactivity"; import { ref } from "@vue/reactivity";
import { onBeforeRouteUpdate } from "vue-router"; import { onBeforeRouteUpdate, RouteLocationNormalized } from "vue-router";
import SongList from "@/components/FolderView/SongList.vue"; import SongList from "@/components/FolderView/SongList.vue";
import FolderList from "@/components/FolderView/FolderList.vue"; import FolderList from "@/components/FolderView/FolderList.vue";
import FolderSvg from "@/assets/icons/folder.svg";
import useFStore from "../stores/pages/folder"; import useFStore from "../stores/pages/folder";
import useLoaderStore from "../stores/loader"; import useLoaderStore from "../stores/loader";
@@ -23,6 +30,11 @@ const FStore = useFStore();
const scrollable = ref(null); const scrollable = ref(null);
function getFolderName(route: RouteLocationNormalized) {
const path = route.params.path as string;
return path.split("/").pop();
}
onBeforeRouteUpdate((to, from) => { onBeforeRouteUpdate((to, from) => {
if (isSameRoute(to, from)) return; if (isSameRoute(to, from)) return;
@@ -54,6 +66,35 @@ onBeforeRouteUpdate((to, from) => {
height: calc(100% - $small); height: calc(100% - $small);
scrollbar-color: grey transparent; scrollbar-color: grey transparent;
.banner {
margin-bottom: $small;
position: relative;
svg {
transform: scale(1.5);
}
.text {
bottom: 1rem;
left: 1rem;
background-color: $black;
h1 {
margin: $small;
display: flex;
align-items: center;
justify-content: center;
gap: $small;
}
}
img {
height: $banner-height;
width: 100%;
object-fit: cover;
}
}
@include phone-only { @include phone-only {
padding-right: 0; padding-right: 0;