The frontend for the project formerly known as signet, now known as beignet.
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 
 

124 rindas
2.9 KiB

  1. <template>
  2. <nav class="navbar has-background-grey-dark" role="navigation" aria-label="main navigation">
  3. <div class="navbar-brand">
  4. <RouterLink to="/" class="navbar-item">
  5. <span class="signet-logo title is-3-desktop is-4-mobile has-text-white-ter">
  6. Beignet
  7. </span>
  8. </RouterLink>
  9. <a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false">
  10. <span aria-hidden="true"></span>
  11. <span aria-hidden="true"></span>
  12. <span aria-hidden="true"></span>
  13. </a>
  14. </div>
  15. <div class="navbar-end">
  16. <div class="navbar-item">
  17. <div class="buttons is-hidden-mobile is-hidden-tablet-only">
  18. <div class="authentication" v-if="!hasToken">
  19. <RouterLink to="/login" class="button is-primary">
  20. Log in
  21. </RouterLink>
  22. </div>
  23. <div v-else>
  24. <RouterLink to="/addfund" class="button is-primary">
  25. Add Fund
  26. </RouterLink>
  27. <RouterLink to="/register" class="button is-white">
  28. Register
  29. </RouterLink>
  30. </div>
  31. </div>
  32. </div>
  33. </div>
  34. </nav>
  35. <div id="content">
  36. <RouterView v-slot="{ Component }">
  37. <Suspense>
  38. <Component :is="Component" />
  39. <template #fallback>
  40. <span style="font-size: 4em; color: saddlebrown">Loading</span>
  41. </template>
  42. </Suspense>
  43. </RouterView>
  44. </div>
  45. <footer>
  46. <div>
  47. Proudly made in Michigan <div class="michigan-icon"></div>
  48. </div>
  49. </footer>
  50. </template>
  51. <script setup lang="ts">
  52. import { useSessionStorage } from '@vueuse/core';
  53. import store from '@/store';
  54. import {
  55. computed,
  56. ref,
  57. } from 'vue';
  58. import jwtDecode from 'jwt-decode';
  59. import { Claims } from '@/api/types';
  60. const userData = ref({ username: '', privileges: -1, exp: -1 } as Claims);
  61. const state = useSessionStorage('jwt', { token: '' });
  62. if (state.value.token) {
  63. store.commit('setToken', state.value.token);
  64. userData.value = jwtDecode<Claims>(state.value.token);
  65. }
  66. const hasToken = computed(() => !!store.getters.getToken);
  67. </script>
  68. <style lang="stylus">
  69. @import "../node_modules/bulma/css/bulma.min.css"
  70. #content
  71. min-height 80vh
  72. #app
  73. font-family Avenir, Helvetica, Arial, sans-serif
  74. -webkit-font-smoothing antialiased
  75. -moz-osx-font-smoothing grayscale
  76. html, body
  77. padding 0
  78. margin 0
  79. body
  80. min-height 100vh
  81. color #e8dbca
  82. background-color #313538
  83. footer
  84. color #707070
  85. padding 12px
  86. margin-top 10px
  87. & *
  88. vertical-align middle
  89. text-align center
  90. .signet-logo
  91. font-family Paytone
  92. letter-spacing 1px
  93. .michigan-icon
  94. display inline-block
  95. width 28px
  96. height 28px
  97. background-image url("./assets/icons8-michigan-50.png")
  98. background-repeat no-repeat
  99. background-position center
  100. background-size 28px
  101. margin-left 4px
  102. @font-face
  103. font-family Paytone
  104. src url("./assets/PaytoneOne-Regular.ttf")
  105. </style>