Open channels list by swiping

Signed-off-by: Emmy D'Anello <emmy.danello@animath.fr>
This commit is contained in:
Emmy D'Anello 2024-04-28 12:55:25 +02:00
parent e77cc558de
commit 784002c085
Signed by: ynerant
GPG Key ID: 3A75C55819C8CF85
2 changed files with 51 additions and 21 deletions

View File

@ -260,8 +260,33 @@ document.addEventListener('DOMContentLoaded', () => {
}) })
} }
setupSocket() function setupSwipeOffscreen() {
const offcanvas = new bootstrap.Offcanvas(document.getElementById('channelSelector'))
let lastX = null
document.addEventListener('touchstart', (event) => {
if (event.touches.length === 1)
lastX = event.touches[0].clientX
})
document.addEventListener('touchmove', (event) => {
if (event.touches.length === 1 && lastX !== null) {
const diff = event.touches[0].clientX - lastX
if (diff > window.innerWidth / 10 && lastX < window.innerWidth / 4) {
offcanvas.show()
lastX = null
}
else if (diff < -window.innerWidth / 10) {
offcanvas.hide()
lastX = null
}
}
})
document.addEventListener('touchend', () => {
lastX = null
})
}
function setupPWAPrompt() {
let deferredPrompt = null let deferredPrompt = null
window.addEventListener("beforeinstallprompt", (e) => { window.addEventListener("beforeinstallprompt", (e) => {
@ -282,4 +307,9 @@ document.addEventListener('DOMContentLoaded', () => {
}) })
} }
}) })
}
setupSocket()
setupSwipeOffscreen()
setupPWAPrompt()
}) })

View File

@ -49,13 +49,13 @@
</h3> </h3>
</div> </div>
<div class="card-body d-flex flex-column-reverse flex-grow-0 overflow-y-scroll" id="chat-messages"> <div class="card-body d-flex flex-column-reverse flex-grow-0 overflow-y-scroll" id="chat-messages">
<ul class="list-group list-group-flush" id="message-list"></ul>
<div class="text-center d-none" id="fetch-previous-messages"> <div class="text-center d-none" id="fetch-previous-messages">
<a href="#" class="nav-link" onclick="event.preventDefault(); fetchPreviousMessages()"> <a href="#" class="nav-link" onclick="event.preventDefault(); fetchPreviousMessages()">
{% trans "Fetch previous messages…" %} {% trans "Fetch previous messages…" %}
</a> </a>
<hr> <hr>
</div> </div>
<ul class="list-group list-group-flush" id="message-list"></ul>
</div> </div>
<div class="card-footer mt-auto"> <div class="card-footer mt-auto">
<form onsubmit="event.preventDefault(); sendMessage()"> <form onsubmit="event.preventDefault(); sendMessage()">