MainHeader.vue 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <template>
  2. <nav class="nav is-info">
  3. <div class="nav-left">
  4. <a class="nav-item is-brand" href="#" v-link="{ path: '/' }">
  5. Musare
  6. </a>
  7. </div>
  8. <span class="nav-toggle" :class="{ 'is-active': isMobile }" @click="isMobile = !isMobile">
  9. <span></span>
  10. <span></span>
  11. <span></span>
  12. </span>
  13. <div class="nav-right nav-menu" :class="{ 'is-active': isMobile }">
  14. <a class="nav-item is-tab admin" href="#" v-link="{ path: '/admin' }" v-if="$parent.$parent.role === 'admin'">
  15. <strong>Admin</strong>
  16. </a>
  17. <!--a class="nav-item is-tab" href="#">
  18. About
  19. </a-->
  20. <a class="nav-item is-tab" href="#" v-link="{ path: '/team' }">
  21. Team
  22. </a>
  23. <a class="nav-item is-tab" href="#" v-link="{ path: '/news' }">
  24. News
  25. </a>
  26. <span class="grouped" v-if="$parent.$parent.loggedIn">
  27. <a class="nav-item is-tab" href="#" v-link="{ path: '/u/' + $parent.$parent.username }">
  28. Profile
  29. </a>
  30. <a class="nav-item is-tab" href="#" v-link="{ path: '/settings' }">
  31. Settings
  32. </a>
  33. <a class="nav-item is-tab" href="#" @click="$parent.$parent.logout()">
  34. Logout
  35. </a>
  36. </span>
  37. <span class="grouped" v-else>
  38. <a class="nav-item" href="#" @click="toggleModal('login')">
  39. Login
  40. </a>
  41. <a class="nav-item" href="#" @click="toggleModal('register')">
  42. Register
  43. </a>
  44. </span>
  45. </div>
  46. </nav>
  47. </template>
  48. <script>
  49. export default {
  50. data() {
  51. return {
  52. isMobile: false
  53. }
  54. },
  55. methods: {
  56. toggleModal: function (type) {
  57. this.$dispatch('toggleModal', type);
  58. }
  59. }
  60. }
  61. </script>
  62. <style lang="scss" scoped>
  63. @import 'theme.scss';
  64. .nav {
  65. background-color: #03a9f4;
  66. height: 64px;
  67. .nav-menu.is-active {
  68. .nav-item {
  69. color: #333;
  70. &:hover {
  71. color: #333;
  72. }
  73. }
  74. }
  75. .nav-toggle {
  76. height: 64px;
  77. &.is-active span {
  78. background-color: #333;
  79. }
  80. }
  81. .is-brand {
  82. font-size: 2.1rem !important;
  83. line-height: 64px !important;
  84. padding: 0 20px;
  85. }
  86. .nav-item {
  87. font-size: 15px;
  88. color: $white;
  89. &:hover {
  90. color: $white;
  91. }
  92. }
  93. .admin {
  94. color: #424242;
  95. }
  96. }
  97. .grouped {
  98. margin: 0;
  99. display: flex;
  100. text-decoration: none;
  101. }
  102. </style>