Update index.html
Browse files- index.html +55 -1
index.html
CHANGED
|
@@ -87,6 +87,7 @@
|
|
| 87 |
<span id="topbar-channel-name"># allgemein</span>
|
| 88 |
</div>
|
| 89 |
<div class="topbar-actions">
|
|
|
|
| 90 |
<button class="icon-btn" onclick="openSettings()" title="Einstellungen">βοΈ</button>
|
| 91 |
<div class="topbar-sep"></div>
|
| 92 |
<div class="topbar-user">
|
|
@@ -98,8 +99,11 @@
|
|
| 98 |
</div>
|
| 99 |
</div>
|
| 100 |
|
|
|
|
|
|
|
|
|
|
| 101 |
<!-- SIDEBAR -->
|
| 102 |
-
<div class="sidebar">
|
| 103 |
<div class="sidebar-scroll">
|
| 104 |
|
| 105 |
<!-- Channels -->
|
|
@@ -255,5 +259,55 @@ async function openPinsModal() {
|
|
| 255 |
|
| 256 |
<script src="https://cdnjs.cloudflare.com/ajax/libs/peerjs/1.5.4/peerjs.min.js"></script>
|
| 257 |
<script src="app.js"></script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 258 |
</body>
|
| 259 |
</html>
|
|
|
|
| 87 |
<span id="topbar-channel-name"># allgemein</span>
|
| 88 |
</div>
|
| 89 |
<div class="topbar-actions">
|
| 90 |
+
<button id="mobile-menu-btn" onclick="toggleMobileSidebar()" title="MenΓΌ" style="display:none">β°</button>
|
| 91 |
<button class="icon-btn" onclick="openSettings()" title="Einstellungen">βοΈ</button>
|
| 92 |
<div class="topbar-sep"></div>
|
| 93 |
<div class="topbar-user">
|
|
|
|
| 99 |
</div>
|
| 100 |
</div>
|
| 101 |
|
| 102 |
+
<!-- MOBILE SIDEBAR BACKDROP -->
|
| 103 |
+
<div id="sidebar-backdrop" onclick="closeMobileSidebar()"></div>
|
| 104 |
+
|
| 105 |
<!-- SIDEBAR -->
|
| 106 |
+
<div class="sidebar" id="sidebar">
|
| 107 |
<div class="sidebar-scroll">
|
| 108 |
|
| 109 |
<!-- Channels -->
|
|
|
|
| 259 |
|
| 260 |
<script src="https://cdnjs.cloudflare.com/ajax/libs/peerjs/1.5.4/peerjs.min.js"></script>
|
| 261 |
<script src="app.js"></script>
|
| 262 |
+
<script>
|
| 263 |
+
// βββ MOBILE SIDEBAR TOGGLE βββββββββββββββββββββββββββββββββββββ
|
| 264 |
+
function isMobile() { return window.innerWidth <= 768; }
|
| 265 |
+
|
| 266 |
+
function toggleMobileSidebar() {
|
| 267 |
+
const sidebar = document.getElementById('sidebar');
|
| 268 |
+
const backdrop = document.getElementById('sidebar-backdrop');
|
| 269 |
+
const open = sidebar.classList.toggle('open');
|
| 270 |
+
backdrop.classList.toggle('visible', open);
|
| 271 |
+
}
|
| 272 |
+
|
| 273 |
+
function closeMobileSidebar() {
|
| 274 |
+
document.getElementById('sidebar').classList.remove('open');
|
| 275 |
+
document.getElementById('sidebar-backdrop').classList.remove('visible');
|
| 276 |
+
}
|
| 277 |
+
|
| 278 |
+
// Show/hide hamburger based on screen size
|
| 279 |
+
function updateMobileUI() {
|
| 280 |
+
const btn = document.getElementById('mobile-menu-btn');
|
| 281 |
+
if (btn) btn.style.display = isMobile() ? 'flex' : 'none';
|
| 282 |
+
}
|
| 283 |
+
window.addEventListener('resize', updateMobileUI);
|
| 284 |
+
document.addEventListener('DOMContentLoaded', updateMobileUI);
|
| 285 |
+
updateMobileUI();
|
| 286 |
+
|
| 287 |
+
// Close sidebar when a channel is selected on mobile
|
| 288 |
+
document.addEventListener('click', function(e) {
|
| 289 |
+
if (!isMobile()) return;
|
| 290 |
+
const item = e.target.closest('.channel-item, .user-item');
|
| 291 |
+
if (item) closeMobileSidebar();
|
| 292 |
+
});
|
| 293 |
+
|
| 294 |
+
// Fix iOS viewport resize when keyboard opens
|
| 295 |
+
function fixViewportOnKeyboard() {
|
| 296 |
+
if (!isMobile()) return;
|
| 297 |
+
const chatArea = document.querySelector('.chat-area');
|
| 298 |
+
if (!chatArea) return;
|
| 299 |
+
// Scroll to bottom when keyboard opens
|
| 300 |
+
const input = document.getElementById('msg-input');
|
| 301 |
+
if (input) {
|
| 302 |
+
input.addEventListener('focus', () => {
|
| 303 |
+
setTimeout(() => {
|
| 304 |
+
const msgs = document.getElementById('messages');
|
| 305 |
+
if (msgs) msgs.scrollTop = msgs.scrollHeight;
|
| 306 |
+
}, 350);
|
| 307 |
+
});
|
| 308 |
+
}
|
| 309 |
+
}
|
| 310 |
+
document.addEventListener('DOMContentLoaded', fixViewportOnKeyboard);
|
| 311 |
+
</script>
|
| 312 |
</body>
|
| 313 |
</html>
|