noah33565 commited on
Commit
93285ba
Β·
verified Β·
1 Parent(s): f5fc610

Update index.html

Browse files
Files changed (1) hide show
  1. 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>