feat(web): service-worker notifications and composer/scroll UX fixes
Some checks failed
CI / test (push) Failing after 21s

- register notifications service worker and handle click-to-open chat/message

- route realtime notifications through service worker with fallback

- support ?chat=&message= deep-link navigation in chats page

- enforce 1s minimum voice message length

- lift scroll-to-bottom button to avoid overlap with composer action
This commit is contained in:
2026-03-08 11:33:58 +03:00
parent 68ba97bb90
commit 4fe89ce89a
7 changed files with 179 additions and 53 deletions

View File

@@ -52,6 +52,30 @@ export function ChatsPage() {
}
}, [activeChatId, loadMessages]);
useEffect(() => {
const applyNotificationNavigation = () => {
const url = new URL(window.location.href);
const chatParam = url.searchParams.get("chat");
const messageParam = url.searchParams.get("message");
const chatId = Number(chatParam);
const messageId = Number(messageParam);
if (!Number.isFinite(chatId) || chatId <= 0) {
return;
}
setActiveChatId(chatId);
if (Number.isFinite(messageId) && messageId > 0) {
setFocusedMessage(chatId, messageId);
}
url.searchParams.delete("chat");
url.searchParams.delete("message");
window.history.replaceState({}, "", url.toString());
};
applyNotificationNavigation();
window.addEventListener("popstate", applyNotificationNavigation);
return () => window.removeEventListener("popstate", applyNotificationNavigation);
}, [setActiveChatId, setFocusedMessage]);
useEffect(() => {
if (!searchOpen) {
return;