Header.vue 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <template>
  2. <div class="full-page-takeover-header">
  3. <div class="full-page-takeover-header-logo">
  4. <p class="full-page-takeover-header-logo-title">Promo Yourself</p>
  5. </div>
  6. <div class="full-page-takeover-header-divider">
  7. </div>
  8. <div class="full-page-takeover-header-text">
  9. {{title}}
  10. </div>
  11. <div class="user-box">
  12. <figure class="image is-48x48 m-r-sm">
  13. <img class="is-rounded" :src="user.avatar">
  14. </figure>
  15. <div class="m-r-sm m-b-sm">
  16. Welcome {{user.username}}!
  17. </div>
  18. </div>
  19. <slot name="actionMenu"></slot>
  20. <div v-if="exitLink" class="full-page-takeover-header-button">
  21. <nuxt-link
  22. :to="exitLink"
  23. class="button is-danger is-medium is-inverted is-outlined">
  24. Exit
  25. </nuxt-link>
  26. </div>
  27. </div>
  28. </template>
  29. <script>
  30. export default {
  31. props: {
  32. title: {
  33. required: true,
  34. type: String
  35. },
  36. exitLink: {
  37. required: false,
  38. type: String,
  39. default: null
  40. }
  41. },
  42. computed: {
  43. user() {
  44. return this.$store.getters['auth/authUser'] || {}
  45. }
  46. }
  47. }
  48. </script>
  49. <style scoped>
  50. .user-box {
  51. align-items: center;
  52. display: flex;
  53. flex-wrap: wrap;
  54. justify-content: flex-start;
  55. margin-right: 10px;
  56. font-size: 17px;
  57. font-weight: bold;
  58. }
  59. </style>