Wischen für den Chat

Ich habe ein Skript für das Wischen geschrieben, um die Seitenleiste durch Wischen von links nach rechts einblenden zu lassen, und im Chat die Liste anzuzeigen, wenn man sich in einer Unterhaltung befindet. Das Ziel ist es, die Benutzererfahrung zu verbessern. Das Skript muss in ein Komponente kopiert werden, die deinem Thema in common\\head zugewiesen ist. Danach denke ich, dass es immer noch Möglichkeiten zur Verbesserung gibt

<script>
  (function() {
    if (window.innerWidth > 768) return;

    let startX = 0;
    let startY = 0;

    // Verwendung von 'window', um sicherzustellen, dass die Geste vor dem Chat erfasst wird
    window.addEventListener("touchstart", function(e) {
      if (e.touches.length === 1) {
        startX = e.touches[0].clientX;
        startY = e.touches[0].clientY;
      }
    }, { passive: true, capture: true });

    window.addEventListener("touchend", function(e) {
      if (!startX) return;

      const touch = e.changedTouches[0];
      const deltaX = touch.clientX - startX;
      const deltaY = touch.clientY - startY;

      if (startX >= 10 && startX <= 120 && deltaX > 50 && Math.abs(deltaY) < 50) {
        
        // 1. BEFINDEN WIR UNS IN EINEM CHATKANAL?
        // Wir prüfen, ob die URL die typischen Schlüsselwörter eines Discourse-Chatkanals enthält
        const currentUrl = window.location.pathname;
        const isInChatChannel = currentUrl.includes('/chat/c/') || currentUrl.includes('/chat/channel/');
        
        if (isInChatChannel) {
          // Wir versuchen zuerst, auf den Zurück-Link zu klicken, falls er standardisiert ist
          const chatBackBtn = document.querySelector('.chat-channel-header a, a[href="/chat"]');
          if (chatBackBtn) {
            chatBackBtn.click();
          } else {
            // Fallback: Wir bitten den Browser, eine Seite zurückzugehen
            window.history.back();
          }
          startX = 0;
          return; // Hier beenden wir das Skript
        }

        // 2. WENN WIR ANDERSWO AUF DEM FORUM SIND (Menü öffnen)
        const sidebarSelectors = [
          ".btn-sidebar-toggle",
          ".sidebar-toggle",
          "button.header-dropdown-toggle.hamburger-dropdown",
          "#toggle-hamburger-menu"
        ];

        for (const selector of sidebarSelectors) {
          const btn = document.querySelector(selector);
          if (btn && btn.getBoundingClientRect().width > 0) {
            btn.click();
            break; 
          }
        }
      }

      startX = 0;
      startY = 0;
    }, { passive: true, capture: true });
  })();
</script>