Чат: автооткрытие свежего диалога и поиск сообщений

- Списки каналов и ЛС сортируются по last_post_at (свежие сверху)
- При открытии чата автоматически выбирается самая свежая розмова — сразу
  видны последние сообщения, а не пустой экран
- Поиск сообщений через Mattermost /teams/{id}/posts/search: строка поиска
  над лентой, результаты списком (кто/канал/время/текст), клик открывает канал
- Выход из поиска при открытии канала и смене команды

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-28 15:48:28 +03:00
parent 04b1625fde
commit caa728158b
2 changed files with 139 additions and 2 deletions
+10
View File
@@ -36,7 +36,17 @@
<span style="font-size:0.875rem; color:var(--color-muted-foreground);">Оберіть канал зліва</span>
</div>
<div style="padding:0.5rem 1.25rem; border-bottom:1px solid var(--color-border); display:flex; gap:0.5rem; align-items:center;">
<input type="text" id="chat-search-input" placeholder="Пошук повідомлень..." class="input" style="flex:1;"
onkeydown="if(event.key==='Enter'){event.preventDefault();chatSearchMessages(this.value);}">
<button type="button" class="btn btn-ghost btn-icon" aria-label="Шукати"
onclick="chatSearchMessages(document.getElementById('chat-search-input').value)">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
</button>
</div>
<div id="chat-messages" style="flex:1; overflow-y:auto; padding:1.25rem; display:flex; flex-direction:column; gap:1rem;"></div>
<div id="chat-search-results" style="display:none; flex:1; overflow-y:auto; padding:0.875rem 1.25rem; flex-direction:column; gap:0.5rem;"></div>
<div id="chat-composer-files" style="display:none; padding:0 1.25rem; flex-wrap:wrap; gap:0.375rem;"></div>