nav.vue 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <template>
  2. <nav class="navbar navbar-expand-lg navbar-dark fixed-top">
  3. <div class="container" style="max-width: 600px;">
  4. <router-link to="/" class="navbar-brand">
  5. <img src="/img/pixelfed-icon-color.svg" width="40" height="40" alt="Logo">
  6. <span class="mr-3">{{ name }}</span>
  7. </router-link>
  8. <ul class="navbar-nav mr-auto">
  9. </ul>
  10. <div class="my-2 my-lg-0">
  11. <a class="btn btn-outline-light btn-sm rounded-pill font-weight-bold px-4" href="/login">Login</a>
  12. <a v-if="config.open_registration || config.curated_onboarding" class="ml-2 btn btn-primary btn-primary-alt btn-sm rounded-pill font-weight-bold px-4" :href="regLink">Sign up</a>
  13. </div>
  14. </div>
  15. </nav>
  16. </template>
  17. <script type="text/javascript">
  18. export default {
  19. data() {
  20. return {
  21. config: window.pfl,
  22. name: window.pfl.name,
  23. }
  24. },
  25. computed: {
  26. regLink: {
  27. get() {
  28. if(this.config.open_registration) {
  29. return '/register';
  30. }
  31. if(this.config.curated_onboarding) {
  32. return '/auth/sign_up';
  33. }
  34. }
  35. }
  36. },
  37. mounted() {
  38. $(window).scroll(function(){
  39. $('nav').toggleClass('bg-black', $(this).scrollTop() > 20);
  40. });
  41. }
  42. }
  43. </script>