WIP: эмодзи-пикер — чекпоинт 2 (доводка перед мержем с origin)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Pixel
2026-07-16 11:21:00 +03:00
co-authored by Claude Opus 4.8
parent 266a74ef79
commit ea3b34e11e
5 changed files with 5 additions and 32 deletions
+1 -1
View File
@@ -1,2 +1,2 @@
client.version=1.2.263 client.version=1.2.264
server.version=1.2.246 server.version=1.2.246
+1 -1
View File
@@ -9,7 +9,7 @@
<link rel="apple-touch-icon" href="./img/logo.jpg" /> <link rel="apple-touch-icon" href="./img/logo.jpg" />
<title>СИЯНИЕ</title> <title>СИЯНИЕ</title>
<script> <script>
window.__SHINE_BUILD_HASH__ = '20260715213000'; window.__SHINE_BUILD_HASH__ = '20260715214500';
window.__SHINE_CLIENT_VERSION__ = '1.2.10'; window.__SHINE_CLIENT_VERSION__ = '1.2.10';
</script> </script>
<script> <script>
+1 -1
View File
@@ -69,7 +69,7 @@ import * as pwaDiagnosticsView from './pages/pwa-diagnostics-view.js';
import * as solanaUsersInitView from './pages/solana-users-init-view.js'; import * as solanaUsersInitView from './pages/solana-users-init-view.js';
import * as messagesList from './pages/messages-list.js'; import * as messagesList from './pages/messages-list.js';
import * as contactSearchView from './pages/contact-search-view.js'; import * as contactSearchView from './pages/contact-search-view.js';
import * as chatView from './pages/chat-view.js?v=202607152130'; import * as chatView from './pages/chat-view.js?v=202607152145';
import * as userProfileView from './pages/user-profile-view.js'; import * as userProfileView from './pages/user-profile-view.js';
import * as channelsList from './pages/channels-list.js'; import * as channelsList from './pages/channels-list.js';
import * as channelView from './pages/channel-view.js'; import * as channelView from './pages/channel-view.js';
-18
View File
@@ -16,7 +16,6 @@ import {
state, state,
} from '../state.js'; } from '../state.js';
import { startOutgoingCall } from '../services/call-service.js'; import { startOutgoingCall } from '../services/call-service.js';
import { openSpeechInputModal } from '../components/speech-input-modal.js';
import { import {
createEmojiPicker, createEmojiPicker,
createTelegramAnimatedEmoji, createTelegramAnimatedEmoji,
@@ -453,7 +452,6 @@ export function render({ navigate, route }) {
<textarea class="input dm-input" name="message" rows="1" placeholder="Введите сообщение" maxlength="12000"></textarea> <textarea class="input dm-input" name="message" rows="1" placeholder="Введите сообщение" maxlength="12000"></textarea>
<div class="dm-actions-col"> <div class="dm-actions-col">
<button class="ghost-btn dm-emoji-btn" type="button" id="chat-emoji-toggle" aria-label="Эмодзи" title="Эмодзи">☺</button> <button class="ghost-btn dm-emoji-btn" type="button" id="chat-emoji-toggle" aria-label="Эмодзи" title="Эмодзи">☺</button>
<button class="ghost-btn dm-voice-btn" type="button" id="chat-voice-input" title="Голосовой ввод">🎤</button>
<button class="primary-btn dm-send-btn dm-send-icon-btn" type="submit" title="Отправить">➤</button> <button class="primary-btn dm-send-btn dm-send-icon-btn" type="submit" title="Отправить">➤</button>
</div> </div>
`; `;
@@ -760,22 +758,6 @@ export function render({ navigate, route }) {
await sendTextMessage(text); await sendTextMessage(text);
}); });
form.querySelector('#chat-voice-input')?.addEventListener('click', async () => {
closeEmojiPicker();
await openSpeechInputModal({
navigate,
onTextReady: (text) => {
const prev = String(input.value || '').trim();
input.value = prev ? `${prev} ${text}` : text;
autoResizeComposer(input);
},
onSendText: async (text) => sendTextMessage(text),
onSendQueued: () => {
showToast('Сообщение будет отправлено автоматически после распознавания', { timeoutMs: 1000 });
},
});
});
form.addEventListener('submit', async (event) => { form.addEventListener('submit', async (event) => {
event.preventDefault(); event.preventDefault();
const text = String(input.value || '').trim(); const text = String(input.value || '').trim();
+2 -11
View File
@@ -4554,20 +4554,11 @@ html, body { overflow-x: hidden; }
border-radius: 10px; border-radius: 10px;
} }
.dm-voice-btn {
grid-area: voice;
min-width: 42px;
width: 42px;
padding: 0 10px;
}
.dm-actions-col { .dm-actions-col {
display: grid; display: grid;
grid-template-columns: repeat(2, 42px); grid-template-columns: repeat(2, 42px);
grid-template-rows: repeat(2, 42px); grid-template-rows: 42px;
grid-template-areas: grid-template-areas: "emoji send";
". voice"
"emoji send";
gap: 6px; gap: 6px;
} }