0
0
Fork 0
mirror of https://github.com/VueTubeApp/VueTube synced 2024-11-28 22:23:04 +00:00

major update (see details)

+ Settings page updates
+ Fix error page
+ Make colors more uniform
+ Add empty layout
+ Add dropdown menu
This commit is contained in:
Front 2022-02-24 17:21:28 -05:00
parent 13c82422db
commit 6584f2328b
5 changed files with 76 additions and 45 deletions

View file

@ -4,8 +4,22 @@
<v-card class="topNav rounded-0" style="display: flex;" color="accent"> <v-card class="topNav rounded-0" style="display: flex;" color="accent">
<h2 v-text="page" /> <h2 v-text="page" />
<v-spacer /> <v-spacer />
<v-btn text><v-icon>mdi-magnify</v-icon></v-btn> <v-btn text class="toolbarAction"><v-icon>mdi-magnify</v-icon></v-btn>
<v-btn text><v-icon>mdi-dots-vertical</v-icon></v-btn>
<v-menu offset-y>
<template v-slot:activator="{ on, attrs }">
<v-btn text class="toolbarAction" v-bind="attrs" v-on="on"><v-icon>mdi-dots-vertical</v-icon></v-btn>
</template>
<v-list>
<v-list-item v-for="(item, index) in dropdownMenu" :key="index">
<nuxt-link :to="item.link" style="text-decoration: none;" class="info--text">{{ item.title }}</nuxt-link>
</v-list-item>
</v-list>
</v-menu>
</v-card> </v-card>
@ -33,6 +47,10 @@
</style> </style>
<style scoped> <style scoped>
.toolbarAction {
min-width: 50px !important;
}
.topNav { .topNav {
padding: 1em; padding: 1em;
} }
@ -56,8 +74,6 @@
<script> <script>
export default { export default {
data: () => ({ data: () => ({
page: null,
tabSelection: 0, tabSelection: 0,
tabs: [ tabs: [
{ name: "Home", icon: "mdi-home", link: "/" }, { name: "Home", icon: "mdi-home", link: "/" },
@ -65,11 +81,21 @@
//{ name: "Upload", icon: "mdi-plus", link: "/upload" }, //{ name: "Upload", icon: "mdi-plus", link: "/upload" },
{ name: "Subscriptions", icon: "mdi-youtube-subscription", link: "/subs" }, { name: "Subscriptions", icon: "mdi-youtube-subscription", link: "/subs" },
{ name: "Library", icon: "mdi-view-list", link: "/library" }, { name: "Library", icon: "mdi-view-list", link: "/library" },
],
dropdownMenu: [
{ title: "Settings", link: "/settings" },
{ title: "About", link: "/about" }
] ]
}), }),
mounted() { mounted() {
const pageName = this.$route.path.split("/")[1];
this.page = pageName.charAt(0).toUpperCase() + pageName.slice(1); },
computed: {
page: function () {
let pageName = this.$route.path.split("/")[1];
pageName = pageName.charAt(0).toUpperCase() + pageName.slice(1);
return pageName || "Home";
}
} }
} }
</script> </script>

11
NUXT/layouts/empty.vue Normal file
View file

@ -0,0 +1,11 @@
<template>
<v-app>
<nuxt />
</v-app>
</template>
<style>
* {
font-family: Arial, Helvetica, sans-serif !important;
}
</style>

View file

@ -1,45 +1,30 @@
<template> <template>
<v-app dark> <v-app>
<h1 v-if="error.statusCode === 404"> <center>
{{ pageNotFound }}
</h1> <v-icon size="100">mdi-alert-circle</v-icon>
<h1 v-else> <h1 class="grey--text">An error occured!</h1>
{{ otherError }} <v-btn to="/">Reload Application</v-btn>
</h1>
<NuxtLink to="/">
Home page <div style="margin-top: 5em; color: #999; font-size: 0.75em;">
</NuxtLink> <div style="font-size: 1.4em;">Error Information</div>
<div>Code: {{ error.statusCode }}</div>
<div>Path: {{ this.$route.fullPath }}</div>
</div>
</center>
</v-app> </v-app>
</template> </template>
<script> <script>
export default { export default {
name: 'EmptyLayout',
layout: 'empty', layout: 'empty',
props: { props: {
error: { error: {
type: Object, type: Object,
default: null default: null
} }
},
data () {
return {
pageNotFound: '404 Not Found',
otherError: 'An error occurred'
}
},
head () {
const title =
this.error.statusCode === 404 ? this.pageNotFound : this.otherError
return {
title
}
} }
} }
</script> </script>
<style scoped>
h1 {
font-size: 20px;
}
</style>

View file

@ -45,13 +45,14 @@ export default {
themes: { themes: {
light: { light: {
primary: colors.red.lighten1, primary: colors.red.lighten1,
accent: "#E62117" accent: "#E62117",
info: "#000"
}, },
dark: { dark: {
primary: colors.red.darken2, //colors.blue.darken2 primary: colors.red.darken2, //colors.blue.darken2
accent: colors.grey.darken3, accent: colors.grey.darken3,
secondary: colors.amber.darken3, secondary: colors.amber.darken3,
info: colors.teal.lighten1, info: "#fff",
warning: colors.amber.base, warning: colors.amber.base,
error: colors.deepOrange.accent4, error: colors.deepOrange.accent4,
success: colors.green.accent3 success: colors.green.accent3

View file

@ -2,12 +2,17 @@
<div class="mainContainer"> <div class="mainContainer">
<v-switch <v-card>
v-model="$vuetify.theme.dark" <v-card-title>Theme</v-card-title>
label="Dark Theme" <section>
hint="Bravo Six, Going Dark." <v-switch
inset persistent-hint v-model="$vuetify.theme.dark"
/> label="Dark Theme"
hint="Bravo Six, Going Dark."
persistent-hint
/>
</section>
</v-card>
</div> </div>
@ -15,6 +20,9 @@
<style scoped> <style scoped>
.mainContainer { .mainContainer {
padding-left: 1em; padding: 1em;
}
section {
padding: 0 1em 1em 1em;
} }
</style> </style>