UI: добавить карусель вложений

This commit is contained in:
AidarKC
2026-07-31 12:49:24 +04:00
parent f961947e1e
commit c530627078
7 changed files with 541 additions and 35 deletions
+15 -3
View File
@@ -31,6 +31,8 @@
После последнего attach-блока идёт обычный пользовательский текст. Пользовательский текст может быть пустым, если есть хотя бы одно валидное вложение.
Клиент SHiNE ограничивает одно сообщение максимум 10 вложениями и сохраняет порядок attach-блоков в том порядке, в котором пользователь прикрепил файлы.
## Поля
Обязательные поля:
@@ -67,8 +69,18 @@ UI поддерживает три сценария:
1. читает валидные attach-блоки только из начала текста;
2. скрывает технические attach-строки;
3. отображает вложения над пользовательским текстом;
4. каждое вложение показывает как карточку/ссылку на Arweave gateway;
5. если attach-блок битый, игнорирует только этот блок и продолжает отображать сообщение.
4. показывает вложения горизонтальной каруселью: одно вложение на экране, переключение свайпом или стрелками, счётчик вида `1 из 3`;
5. определяет тип вложения по расширению имени файла:
- изображение показывает как ограниченное по размеру превью;
- видео показывает как превью с кнопкой воспроизведения и открывает большой HTML5-плеер по нажатию;
- обычный файл показывает как карточку с именем, расширением, размером и скачиванием;
6. при перелистывании останавливает воспроизводящееся видео;
7. если attach-блок битый, игнорирует только этот блок и продолжает отображать сообщение.
Если файл по ссылке Arweave gateway недоступен, клиент показывает диагностический блок:
- если сообщение создано менее 20 минут назад: файл, скорее всего, ещё не распространился в Arweave, нужно повторить через несколько минут;
- если сообщение старше 20 минут: файл считается недоступным.
Старые клиенты без поддержки формата могут показывать attach-блоки как обычный текст.
@@ -79,6 +91,6 @@ UI поддерживает три сценария:
## Ограничения v1
- `ar` допускает только короткий Arweave `txId`, полный URL не используется;
- превью типа image/video/audio не входит в формат v1;
- MIME type не записывается, поэтому UI определяет image/video/file по расширению имени файла;
- MIME type, width, height, duration и thumbnail не записываются в блокчейн;
- проверка существующего `txId` скачивает файл локально через gateway, поэтому UI ограничивает максимальный размер такой проверки.
+6
View File
@@ -1,5 +1,11 @@
# История изменений документации блокчейна
## 2026-07-31 12:47:41 +0400
- Базовый коммит-ориентир: `f961947`.
- Для `SHiNE:attach v=1` уточнено клиентское отображение вложений: горизонтальная карусель над текстом сообщения, счётчик позиции, просмотр image/video в модальном окне и скачивание файлов.
- Зафиксирован клиентский лимит: максимум 10 вложений в одном сообщении с сохранением порядка attach-блоков.
- Описана диагностика недоступного файла через Arweave gateway: отдельное сообщение для свежих сообщений младше 20 минут и отдельное сообщение для старых недоступных файлов.
## 2026-07-30 11:12:47 +0400
- Базовый коммит-ориентир: `e9e6628`.
- Добавлен отдельный документ `docs/Blockchain/15_TEXT_Attachments.md` с полной спецификацией `SHiNE:attach v=1`.