No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 

146 líneas
4.3 KiB

  1. <script>
  2. import rightBar from "./right-bar.vue";
  3. export default {
  4. name: "NAVBAR",
  5. components: {},
  6. data() {
  7. return {
  8. isFullscreen: false,
  9. isSidebarHidden: false,
  10. currentMode: "light",
  11. rightBar,
  12. show: false,
  13. };
  14. },
  15. mounted() {
  16. const savedMode = localStorage.getItem("themeMode");
  17. if (savedMode) {
  18. this.changeMode(savedMode); // Apply the saved theme mode
  19. }
  20. // Add event listener for keydown events
  21. document.addEventListener("keydown", this.handleKeyDown);
  22. },
  23. beforeUnmount() {
  24. // Remove event listener when component is unmounted
  25. document.removeEventListener("keydown", this.handleKeyDown);
  26. },
  27. methods: {
  28. handleSearch(event) {
  29. console.log("handleSearch called");
  30. // Prevent the default action (e.g., browser search)
  31. event.preventDefault();
  32. },
  33. handleKeyDown(event) {
  34. // Check if Ctrl+K is pressed
  35. if (event.ctrlKey && event.key === "k") {
  36. // Prevent the default action (e.g., browser search)
  37. event.preventDefault();
  38. console.log("Ctrl+K detected");
  39. // Focus on the search input field
  40. const searchInput = document.querySelector("#serchFildid");
  41. if (searchInput) {
  42. console.log("Search input found, focusing");
  43. searchInput.focus();
  44. } else {
  45. console.log("Search input not found");
  46. }
  47. }
  48. },
  49. changeMode(mode) {
  50. this.currentMode = mode;
  51. localStorage.setItem("themeMode", mode);
  52. if (mode === "dark") {
  53. document.body.setAttribute("data-pc-theme", "dark");
  54. document.body.setAttribute("data-topbar", "dark");
  55. document.body.classList.remove("mode-auto");
  56. } else if (mode === "auto") {
  57. document.body.setAttribute("data-pc-theme", "light");
  58. document.body.setAttribute("data-topbar", "light");
  59. document.body.classList.add("mode-auto");
  60. } else {
  61. document.body.setAttribute("data-pc-theme", "light");
  62. document.body.setAttribute("data-topbar", "light");
  63. document.body.classList.remove("mode-auto");
  64. }
  65. },
  66. toggleSidebar() {
  67. this.$store.commit("toggleSidebar");
  68. },
  69. toggleMobileSidebar() {
  70. this.$store.commit("toggleMobileSidebar");
  71. },
  72. toggleRightSidebar() {
  73. this.$emit("toggleRightSidebar"); // Emit an event to toggle the right sidebar
  74. },
  75. },
  76. };
  77. </script>
  78. <template>
  79. <div class="header-wrapper">
  80. <!-- [Mobile Media Block] start -->
  81. <div class="me-auto pc-mob-drp" style="margin-right: 12px !important;">
  82. <ul class="list-unstyled">
  83. <!-- ======= Menu collapse Icon ===== -->
  84. <li class="pc-h-item pc-sidebar-collapse">
  85. <a class="pc-head-link ms-0" id="sidebar-hide" @click="toggleSidebar">
  86. <i class="ti ti-menu-2"></i>
  87. </a>
  88. </li>
  89. <li class="pc-h-item pc-sidebar-popup">
  90. <a
  91. class="pc-head-link ms-0"
  92. id="mobile-collapse"
  93. @click="toggleMobileSidebar"
  94. >
  95. <i class="ti ti-menu-2"></i>
  96. </a>
  97. </li>
  98. </ul>
  99. </div>
  100. <BDropdown
  101. variant="transparent"
  102. class="pc-h-item"
  103. toggle-class="text-reset dropdown-btn pc-head-link arrow-none p-0"
  104. menu-class="dropdown-menu-end"
  105. aria-haspopup="true"
  106. :offset="{ alignmentAxis: -150, crossAxis: 0, mainAxis: 20 }"
  107. >
  108. <template #button-content
  109. ><span class="text-muted pc-head-link"
  110. ><i
  111. :class="
  112. currentMode === 'dark'
  113. ? 'ph-duotone ph-moon'
  114. : currentMode === 'light'
  115. ? 'ph-duotone ph-sun-dim'
  116. : 'ph-duotone ph-cpu'
  117. "
  118. ></i
  119. ></span>
  120. </template>
  121. <a href="#" class="dropdown-item" @click.prevent="changeMode('dark')">
  122. <i class="ph-duotone ph-moon"></i>
  123. <span>تاریک</span>
  124. </a>
  125. <a
  126. href="#"
  127. class="dropdown-item"
  128. @click.prevent="changeMode('light')"
  129. >
  130. <i class="ph-duotone ph-sun-dim"></i>
  131. <span>روشن</span>
  132. </a>
  133. </BDropdown>
  134. <rightBar />
  135. </div>
  136. </template>
  137. <style>
  138. .ls {
  139. margin-left: 500px;
  140. }
  141. </style>