TopBar.vue 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <script setup>
  2. import { Inertia } from '@inertiajs/inertia'
  3. import { Link } from '@inertiajs/inertia-vue3'
  4. import { useConfirm } from 'primevue/useconfirm'
  5. const logoutConfirm = useConfirm()
  6. const logout = () => {
  7. logoutConfirm.require({
  8. message: 'Ingin keluar dari aplikasi',
  9. header: 'Keluar',
  10. acceptLabel: 'Iya',
  11. rejectLabel: 'Tidak',
  12. accept: () => {
  13. Inertia.post(route('logout'))
  14. },
  15. reject: () => {
  16. logoutConfirm.close()
  17. },
  18. })
  19. }
  20. </script>
  21. <template>
  22. <div class="layout-topbar">
  23. <Link href="/" class="layout-topbar-logo">
  24. <img alt="Brand Logo" src="/images/logo.svg" />
  25. <span>{{ $page.props.app.company.name }}</span>
  26. </Link>
  27. <button
  28. class="p-link layout-menu-button layout-topbar-button"
  29. @click="$emit('menu-toggle')"
  30. >
  31. <i class="pi pi-bars"></i>
  32. </button>
  33. <button
  34. class="p-link layout-topbar-menu-button layout-topbar-button"
  35. v-styleclass="{
  36. selector: '@next',
  37. enterClass: 'hidden',
  38. enterActiveClass: 'scalein',
  39. leaveToClass: 'hidden',
  40. leaveActiveClass: 'fadeout',
  41. hideOnOutsideClick: true,
  42. }"
  43. >
  44. <i class="pi pi-ellipsis-v"></i>
  45. </button>
  46. <ul class="layout-topbar-menu hidden lg:flex origin-top">
  47. <li class="align-self-center">
  48. <span class="hidden lg:inline">{{ $page.props.auth.user.name }}</span>
  49. </li>
  50. <li>
  51. <Link
  52. :href="route('users.show', $page.props.auth.user.id)"
  53. class="p-link layout-topbar-button"
  54. v-tooltip.bottom="{
  55. value: 'Ubah Profil',
  56. }"
  57. >
  58. <i class="pi pi-user"></i>
  59. <span>Ubah Profil</span>
  60. </Link>
  61. </li>
  62. <li>
  63. <button
  64. class="p-link layout-topbar-button"
  65. v-tooltip.bottom="{
  66. value: 'Keluar',
  67. }"
  68. @click="logout"
  69. >
  70. <i class="pi pi-sign-out"></i>
  71. <span>Keluar</span>
  72. </button>
  73. </li>
  74. </ul>
  75. </div>
  76. </template>