mirror of
https://github.com/audiobookshelf/audiobookshelf-web.git
synced 2025-08-31 15:09:31 +02:00
102 lines
No EOL
4.1 KiB
Vue
102 lines
No EOL
4.1 KiB
Vue
<template>
|
|
<div class="w-screen h-screen max-w-full max-h-screen text-white bg-gradient overflow-hidden">
|
|
<div class="fixed top-0 left-0 w-full h-16 shadow-lg bg-primary flex px-4 items-center">
|
|
<nuxt-link to="/" class="h-12 w-12">
|
|
<img src="/Logo48.png" class="h-12 w-12" />
|
|
</nuxt-link>
|
|
<nuxt-link to="/" class="text-2xl pl-2 sm:pl-4 font-book hover:underline hidden lg:block">audiobookshelf</nuxt-link>
|
|
|
|
<nuxt-link to="/install" class="h-full px-3 lg:px-5 flex items-center ml-2 lg:ml-12 cursor-pointer" :class="routeName === 'install' ? 'bg-bg bg-opacity-50 text-white' : 'hover:text-white hover:bg-bg hover:bg-opacity-50 text-gray-300'">
|
|
<p class="text-base md:text-lg">Install</p>
|
|
</nuxt-link>
|
|
<nuxt-link to="/docs" class="h-full px-3 lg:px-5 flex items-center cursor-pointer" :class="routeName === 'docs' ? 'bg-bg bg-opacity-50 text-white' : 'hover:text-white hover:bg-bg hover:bg-opacity-50 text-gray-300'">
|
|
<p class="text-base md:text-lg hidden md:block">Documentation</p>
|
|
<p class="text-base md:text-lg md:hidden">Docs</p>
|
|
</nuxt-link>
|
|
<nuxt-link to="/support" class="h-full px-3 lg:px-5 items-center cursor-pointer flex" :class="routeName === 'support' ? 'bg-bg bg-opacity-50 text-white' : 'hover:text-white hover:bg-bg hover:bg-opacity-50 text-gray-300'">
|
|
<p class="text-base md:text-lg hidden md:block">How to Support</p>
|
|
<p class="text-base md:text-lg md:hidden">Support</p>
|
|
</nuxt-link>
|
|
<nuxt-link to="/showcase" class="h-full px-3 lg:px-5 items-center cursor-pointer hidden md:flex" :class="routeName === 'showcase' ? 'bg-bg bg-opacity-50 text-white' : 'hover:text-white hover:bg-bg hover:bg-opacity-50 text-gray-300'">
|
|
<p class="text-base md:text-lg">Showcase</p>
|
|
</nuxt-link>
|
|
|
|
<div class="flex-grow" />
|
|
|
|
<a :href="discordUrl" class="mx-2 hidden md:block">
|
|
<img src="/discord.svg" class="h-5 md:h-7 hover:scale-110 transform duration-100" />
|
|
</a>
|
|
<a :href="dockerHubUrl" class="mx-2">
|
|
<img src="/docker.svg" class="h-8 hover:scale-110 transform duration-100" />
|
|
</a>
|
|
<a :href="githubUrl">
|
|
<img src="/github.svg" class="h-7 hover:scale-110 transform duration-100 mx-1 sm:mx-2" />
|
|
</a>
|
|
<a :href="playStoreUrl" class="hidden md:block">
|
|
<img src="/GetGooglePlayStore.png" class="h-7 ml-2" />
|
|
</a>
|
|
<a :href="appStoreUrl" class="hidden md:block">
|
|
<img src="/AppleAppStoreDark.svg" class="h-7 ml-2" />
|
|
</a>
|
|
</div>
|
|
<div class="page-container w-screen pt-16">
|
|
<div class="w-full h-full overflow-y-auto">
|
|
<Nuxt />
|
|
<div class="w-full h-8 flex items-center text-xs text-gray-300 bg-primary px-4">
|
|
<nuxt-link to="/privacy-policy" class="font-mono underline text-blue-200 hover:text-blue-100 text-sm">Privacy Policy</nuxt-link>
|
|
<div class="flex-grow" />
|
|
<a href="mailto:advplyr@protonmail.com" class="font-mono underline text-blue-200 hover:text-blue-100 text-sm hidden md:block">advplyr@protonmail.com</a>
|
|
|
|
<a href="https://github.com/advplyr" target="_blank" class="font-mono underline text-blue-200 hover:text-blue-100 text-sm ml-4">https://github.com/advplyr</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
appStoreUrl: 'https://testflight.apple.com/join/wiic7QIW',
|
|
dockerHubUrl: 'https://hub.docker.com/repository/docker/advplyr/audiobookshelf',
|
|
playStoreUrl: 'https://play.google.com/store/apps/details?id=com.audiobookshelf.app',
|
|
githubUrl: 'https://github.com/advplyr/audiobookshelf',
|
|
discordUrl: 'https://discord.gg/pJsjuNCKRq'
|
|
}
|
|
},
|
|
watch: {
|
|
'$route.hash'(newVal) {
|
|
if (newVal) {
|
|
this.scrollTo(newVal)
|
|
}
|
|
}
|
|
},
|
|
computed: {
|
|
routeName() {
|
|
return this.$route.name
|
|
}
|
|
},
|
|
methods: {
|
|
scrollTo(hashtag) {
|
|
location.href = hashtag
|
|
}
|
|
},
|
|
mounted() {
|
|
if (this.$route.hash) {
|
|
this.scrollTo(this.$route.hash)
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style>
|
|
html,
|
|
body {
|
|
overflow: hidden;
|
|
}
|
|
.page-container {
|
|
height: calc(100%);
|
|
max-height: calc(100%);
|
|
}
|
|
</style> |