olmamış hatalar var .
Browse files- components/navbar.js +2 -2
- components/sidebar.js +4 -3
- index.html +16 -3
- script.js +2 -20
components/navbar.js
CHANGED
|
@@ -10,10 +10,10 @@ class CustomNavbar extends HTMLElement {
|
|
| 10 |
</style>
|
| 11 |
<nav class="navbar bg-white border-b border-gray-200 px-6 flex items-center justify-between w-full">
|
| 12 |
<div class="flex items-center">
|
| 13 |
-
<button id="sidebar-toggle" class="mr-4 text-gray-500 focus:outline-none lg:hidden">
|
| 14 |
<i data-feather="menu"></i>
|
| 15 |
</button>
|
| 16 |
-
|
| 17 |
</div>
|
| 18 |
|
| 19 |
<div class="flex items-center space-x-4">
|
|
|
|
| 10 |
</style>
|
| 11 |
<nav class="navbar bg-white border-b border-gray-200 px-6 flex items-center justify-between w-full">
|
| 12 |
<div class="flex items-center">
|
| 13 |
+
<button id="sidebar-toggle" class="mr-4 text-gray-500 focus:outline-none lg:hidden" aria-label="Toggle sidebar">
|
| 14 |
<i data-feather="menu"></i>
|
| 15 |
</button>
|
| 16 |
+
<h1 class="text-xl font-bold text-gray-800">Dolmuş Tracker Admin</h1>
|
| 17 |
</div>
|
| 18 |
|
| 19 |
<div class="flex items-center space-x-4">
|
components/sidebar.js
CHANGED
|
@@ -7,7 +7,6 @@ class CustomSidebar extends HTMLElement {
|
|
| 7 |
width: 240px;
|
| 8 |
transition: transform 0.3s ease-in-out;
|
| 9 |
}
|
| 10 |
-
|
| 11 |
@media (max-width: 1023px) {
|
| 12 |
.sidebar {
|
| 13 |
transform: translateX(-100%);
|
|
@@ -15,14 +14,16 @@ class CustomSidebar extends HTMLElement {
|
|
| 15 |
z-index: 40;
|
| 16 |
height: 100vh;
|
| 17 |
background: white;
|
|
|
|
|
|
|
| 18 |
}
|
| 19 |
|
| 20 |
.sidebar.open {
|
| 21 |
transform: translateX(0);
|
|
|
|
| 22 |
}
|
| 23 |
}
|
| 24 |
-
|
| 25 |
-
.nav-item {
|
| 26 |
transition: all 0.2s ease;
|
| 27 |
}
|
| 28 |
|
|
|
|
| 7 |
width: 240px;
|
| 8 |
transition: transform 0.3s ease-in-out;
|
| 9 |
}
|
|
|
|
| 10 |
@media (max-width: 1023px) {
|
| 11 |
.sidebar {
|
| 12 |
transform: translateX(-100%);
|
|
|
|
| 14 |
z-index: 40;
|
| 15 |
height: 100vh;
|
| 16 |
background: white;
|
| 17 |
+
top: 64px;
|
| 18 |
+
left: 0;
|
| 19 |
}
|
| 20 |
|
| 21 |
.sidebar.open {
|
| 22 |
transform: translateX(0);
|
| 23 |
+
box-shadow: 2px 0 8px rgba(0,0,0,0.1);
|
| 24 |
}
|
| 25 |
}
|
| 26 |
+
.nav-item {
|
|
|
|
| 27 |
transition: all 0.2s ease;
|
| 28 |
}
|
| 29 |
|
index.html
CHANGED
|
@@ -137,11 +137,24 @@
|
|
| 137 |
</div>
|
| 138 |
</main>
|
| 139 |
</div>
|
| 140 |
-
|
| 141 |
<script src="components/navbar.js"></script>
|
| 142 |
<script src="components/sidebar.js"></script>
|
| 143 |
<script src="script.js"></script>
|
| 144 |
-
<script>
|
| 145 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 146 |
</body>
|
| 147 |
</html>
|
|
|
|
| 137 |
</div>
|
| 138 |
</main>
|
| 139 |
</div>
|
|
|
|
| 140 |
<script src="components/navbar.js"></script>
|
| 141 |
<script src="components/sidebar.js"></script>
|
| 142 |
<script src="script.js"></script>
|
| 143 |
+
<script>
|
| 144 |
+
document.addEventListener('DOMContentLoaded', function() {
|
| 145 |
+
feather.replace();
|
| 146 |
+
|
| 147 |
+
// Sidebar toggle for mobile
|
| 148 |
+
const sidebarToggle = this.shadowRoot?.getElementById('sidebar-toggle') ||
|
| 149 |
+
document.getElementById('sidebar-toggle');
|
| 150 |
+
const sidebar = document.querySelector('custom-sidebar')?.shadowRoot?.querySelector('.sidebar');
|
| 151 |
+
|
| 152 |
+
if (sidebarToggle && sidebar) {
|
| 153 |
+
sidebarToggle.addEventListener('click', function() {
|
| 154 |
+
sidebar.classList.toggle('open');
|
| 155 |
+
});
|
| 156 |
+
}
|
| 157 |
+
});
|
| 158 |
+
</script>
|
| 159 |
</body>
|
| 160 |
</html>
|
script.js
CHANGED
|
@@ -1,23 +1,5 @@
|
|
|
|
|
| 1 |
document.addEventListener('DOMContentLoaded', function() {
|
| 2 |
-
// Initialize tooltips
|
| 3 |
-
const tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
|
| 4 |
-
tooltipTriggerList.map(function (tooltipTriggerEl) {
|
| 5 |
-
return new bootstrap.Tooltip(tooltipTriggerEl);
|
| 6 |
-
});
|
| 7 |
-
|
| 8 |
-
// Sidebar toggle functionality (will be used in mobile view)
|
| 9 |
-
const sidebarToggle = document.getElementById('sidebar-toggle');
|
| 10 |
-
const sidebar = document.getElementById('sidebar');
|
| 11 |
-
|
| 12 |
-
if (sidebarToggle && sidebar) {
|
| 13 |
-
sidebarToggle.addEventListener('click', function() {
|
| 14 |
-
sidebar.classList.toggle('-translate-x-full');
|
| 15 |
-
});
|
| 16 |
-
}
|
| 17 |
-
|
| 18 |
-
// Feather icons replacement
|
| 19 |
-
feather.replace();
|
| 20 |
-
|
| 21 |
// Simulate data loading
|
| 22 |
setTimeout(() => {
|
| 23 |
const loadingElements = document.querySelectorAll('.loading-skeleton');
|
|
@@ -26,4 +8,4 @@ document.addEventListener('DOMContentLoaded', function() {
|
|
| 26 |
el.classList.remove('animate-pulse');
|
| 27 |
});
|
| 28 |
}, 1500);
|
| 29 |
-
});
|
|
|
|
| 1 |
+
|
| 2 |
document.addEventListener('DOMContentLoaded', function() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3 |
// Simulate data loading
|
| 4 |
setTimeout(() => {
|
| 5 |
const loadingElements = document.querySelectorAll('.loading-skeleton');
|
|
|
|
| 8 |
el.classList.remove('animate-pulse');
|
| 9 |
});
|
| 10 |
}, 1500);
|
| 11 |
+
});
|