Updated UI for smaller screen

This commit is contained in:
Donald Zou
2024-08-14 12:07:53 -04:00
parent 3feb45dc01
commit 4f648aff52
9 changed files with 83 additions and 33 deletions
File diff suppressed because one or more lines are too long
+20 -20
View File
File diff suppressed because one or more lines are too long
+12 -1
View File
@@ -31,7 +31,10 @@ const getActiveCrossServer = computed(() => {
<small class="ms-auto text-muted" v-if="getActiveCrossServer !== undefined"> <small class="ms-auto text-muted" v-if="getActiveCrossServer !== undefined">
<i class="bi bi-server me-2"></i>{{getActiveCrossServer.host}} <i class="bi bi-server me-2"></i>{{getActiveCrossServer.host}}
</small> </small>
<a role="button"><i class="bi bi-list"></i></a> <a role="button" class="navbarBtn text-body"
@click="store.ShowNavBar = !store.ShowNavBar"
style="line-height: 0; font-size: 2rem">
<i class="bi bi-list"></i></a>
</div> </div>
</nav> </nav>
<Suspense> <Suspense>
@@ -58,4 +61,12 @@ const getActiveCrossServer = computed(() => {
transform: translateY(-20px); transform: translateY(-20px);
opacity: 0; opacity: 0;
} }
@media screen and (min-width: 768px) {
.navbarBtn{
display: none;
}
}
</style> </style>
@@ -32,15 +32,14 @@ export default {
<template> <template>
<div class="mt-5"> <div class="mt-5">
<div class="container"> <div class="container-md">
<div class="d-flex mb-4 "> <div class="d-flex mb-4 configurationListTitle">
<h3 class="text-body"> <h3 class="text-body d-flex">
<i class="bi bi-body-text me-2"></i> <i class="bi bi-body-text me-2"></i>
WireGuard Configurations</h3> <span>WireGuard Configurations</span></h3>
<RouterLink to="/new_configuration" class="btn btn-dark btn-brand rounded-3 px-3 py-2 shadow ms-auto rounded-3"> <RouterLink to="/new_configuration" class="btn btn-dark btn-brand rounded-3 px-3 py-2 shadow ms-auto rounded-3">
<i class="bi bi-plus-circle-fill me-2"></i> <i class="bi bi-plus-circle-fill me-2"></i>
Configuration Configuration
</RouterLink> </RouterLink>
</div> </div>
<Transition name="fade" mode="out-in"> <Transition name="fade" mode="out-in">
@@ -60,5 +59,18 @@ export default {
</template> </template>
<style scoped> <style scoped>
@media screen and (max-width: 768px) {
.configurationListTitle{
flex-direction: column;
gap: 0.5rem;
h3 span{
margin-left: auto !important;
}
.btn{
width: 100%;
}
}
}
</style> </style>
+26 -1
View File
@@ -14,7 +14,10 @@ export default {
</script> </script>
<template> <template>
<div class="col-md-3 col-lg-2 d-md-block p-3 navbar-container bg-body" style="height: calc(-50px + 100vh);"> <div class="col-md-3 col-lg-2 d-md-block p-3 navbar-container"
:class="{active: this.dashboardConfigurationStore.ShowNavBar}"
:data-bs-theme="dashboardConfigurationStore.Configuration.Server.dashboard_theme"
style="height: calc(-50px + 100vh);">
<nav id="sidebarMenu" class=" bg-body-tertiary sidebar border h-100 rounded-3 shadow overflow-y-scroll" > <nav id="sidebarMenu" class=" bg-body-tertiary sidebar border h-100 rounded-3 shadow overflow-y-scroll" >
<div class="sidebar-sticky pt-3"> <div class="sidebar-sticky pt-3">
<ul class="nav flex-column px-2"> <ul class="nav flex-column px-2">
@@ -79,6 +82,28 @@ export default {
.navbar-container{ .navbar-container{
position: absolute; position: absolute;
z-index: 1000; z-index: 1000;
animation-duration: 0.4s;
animation-fill-mode: both;
display: none;
animation-timing-function: cubic-bezier(0.82, 0.58, 0.17, 0.9);
}
.navbar-container.active{
animation-direction: normal;
display: block !important;
animation-name: zoomInFade
}
}
@keyframes zoomInFade {
0%{
opacity: 0;
transform: translateY(60px);
filter: blur(3px);
}
100%{
opacity: 1;
transform: translateY(0px);
filter: blur(0px);
} }
} }
</style> </style>
+1 -1
View File
@@ -136,6 +136,7 @@ router.beforeEach(async (to, from, next) => {
}else{ }else{
document.title = "WGDashboard" document.title = "WGDashboard"
} }
dashboardConfigurationStore.ShowNavBar = false;
if (to.meta.requiresAuth){ if (to.meta.requiresAuth){
if (!dashboardConfigurationStore.getActiveCrossServer()){ if (!dashboardConfigurationStore.getActiveCrossServer()){
@@ -159,7 +160,6 @@ router.beforeEach(async (to, from, next) => {
next() next()
} }
}else { }else {
next(); next();
} }
}); });
@@ -16,7 +16,8 @@ export const DashboardConfigurationStore = defineStore('DashboardConfigurationSt
ServerList: {} ServerList: {}
}, },
ActiveServerConfiguration: undefined, ActiveServerConfiguration: undefined,
IsElectronApp: false IsElectronApp: false,
ShowNavBar: false
}), }),
actions: { actions: {
initCrossServerConfiguration(){ initCrossServerConfiguration(){
+1 -1
View File
@@ -19,7 +19,7 @@ const getUrl = (url) => {
if (apiKey){ if (apiKey){
return `${apiKey.host}${url}` return `${apiKey.host}${url}`
} }
return window.location.hostname === 'localhost' ? url return import.meta.env.MODE === 'development' ? url
: `${window.location.protocol}//${window.location.host}${window.location.pathname}${url}` : `${window.location.protocol}//${window.location.host}${window.location.pathname}${url}`
} }
+2 -1
View File
@@ -121,7 +121,8 @@
} }
[data-bs-theme="dark"].main, [data-bs-theme="dark"].main,
#app:has(.main[data-bs-theme="dark"]){ #app:has(.main[data-bs-theme="dark"]),
[data-bs-theme="dark"].navbar-container{
background-color: #1b1e21; background-color: #1b1e21;
} }