Navbar.vue 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <template>
  2. <div class="navbar-container d-flex content align-items-center">
  3. <!-- Nav Menu Toggler -->
  4. <ul class="nav navbar-nav d-xl-none">
  5. <li class="nav-item">
  6. <b-link class="nav-link" @click="toggleVerticalMenuActive">
  7. <feather-icon icon="MenuIcon" size="21" />
  8. </b-link>
  9. </li>
  10. </ul>
  11. <!-- Left Col -->
  12. <div class="bookmark-wrapper align-items-center flex-grow-1 d-none d-lg-flex">
  13. <dark-Toggler class="d-none d-lg-block" />
  14. </div>
  15. <b-navbar-nav class="nav align-items-center ml-auto">
  16. <b-nav-item-dropdown right toggle-class="d-flex align-items-center dropdown-user-link" class="dropdown-user">
  17. <template #button-content>
  18. <div class="d-sm-flex d-none user-nav">
  19. <p class="user-name font-weight-bolder mb-0">
  20. John Doe
  21. </p>
  22. <span class="user-status">Admin</span>
  23. </div>
  24. <b-avatar size="40" variant="light-primary" badge :src="require('@/assets/images/avatars/13-small.png')"
  25. class="badge-minimal" badge-variant="success" />
  26. </template>
  27. <b-dropdown-item link-class="d-flex align-items-center">
  28. <feather-icon size="16" icon="UserIcon" class="mr-50" />
  29. <span>Profile</span>
  30. </b-dropdown-item>
  31. <b-dropdown-item link-class="d-flex align-items-center">
  32. <feather-icon size="16" icon="MailIcon" class="mr-50" />
  33. <span>Inbox</span>
  34. </b-dropdown-item>
  35. <b-dropdown-item link-class="d-flex align-items-center">
  36. <feather-icon size="16" icon="CheckSquareIcon" class="mr-50" />
  37. <span>Task</span>
  38. </b-dropdown-item>
  39. <b-dropdown-item link-class="d-flex align-items-center">
  40. <feather-icon size="16" icon="MessageSquareIcon" class="mr-50" />
  41. <span>Chat</span>
  42. </b-dropdown-item>
  43. <b-dropdown-divider />
  44. <b-dropdown-item link-class="d-flex align-items-center" @click="logout">
  45. <feather-icon size="16" icon="LogOutIcon" class="mr-50" />
  46. <span>Logout</span>
  47. </b-dropdown-item>
  48. </b-nav-item-dropdown>
  49. </b-navbar-nav>
  50. </div>
  51. </template>
  52. <script>
  53. import {
  54. BLink, BNavbarNav, BNavItemDropdown, BDropdownItem, BDropdownDivider, BAvatar,
  55. } from 'bootstrap-vue'
  56. import DarkToggler from '@core/layouts/components/app-navbar/components/DarkToggler.vue'
  57. import useJwt from '@/auth/jwt/useJwt'
  58. export default {
  59. components: {
  60. BLink,
  61. BNavbarNav,
  62. BNavItemDropdown,
  63. BDropdownItem,
  64. BDropdownDivider,
  65. BAvatar,
  66. // Navbar Components
  67. DarkToggler,
  68. },
  69. props: {
  70. toggleVerticalMenuActive: {
  71. type: Function,
  72. default: () => { },
  73. },
  74. },
  75. methods: {
  76. logout() {
  77. useJwt.logout()
  78. // eslint-disable-next-line no-unused-vars
  79. .then(res => {
  80. this.$router.push({ path: '/login' })
  81. })
  82. },
  83. },
  84. }
  85. </script>