diff --git a/VERSION.properties b/VERSION.properties index edd0c34e..db6de73c 100644 --- a/VERSION.properties +++ b/VERSION.properties @@ -1,2 +1,2 @@ -client.version=1.13.0 +client.version=1.13.1 server.version=1.11.0 diff --git a/docs/UI-Design/ISSUES-for-dev.md b/docs/UI-Design/ISSUES-for-dev.md new file mode 100644 index 00000000..bd1d1c64 --- /dev/null +++ b/docs/UI-Design/ISSUES-for-dev.md @@ -0,0 +1,41 @@ +# Замечания к серверу и UI (найдено при редизайне) + +Код по этим пунктам не менялся. + +## Ошибки + +1. **Лента «Подписки» пуста у логинов с заглавными буквами** (например `User_t2_03`). + `Net_ListSubscriptionsFeed_Handler.loadFollowedChannels` ищет `connections_state.login = ?` в исходном регистре, + а в `connections_state` логин хранится в нижнем регистре (FK на `solana_user_pda_current.normalized_login`). + Подписки в базе есть, но `followedChannels` пуст. Отсюда же «подписка не срабатывает» в UI: + кнопка не меняется на «Отписаться», канал не появляется в «Подписках». + +2. **Превью в списке чатов — «Сообщение недоступно»**, хотя в самом чате сообщения расшифровываются. + `messages-list.js` строит превью по `dialog.lastMessageBlobB64`, `catch` глушит настоящую ошибку. + Проверить, не бывает ли так у реальных пользователей (например, если последнее сообщение отправлено с другого устройства). + +3. **Прямой переход по адресу** `/settings`, `/profile`, `/channels/new` при загрузке страницы уводит на «Личные». + +4. **`?localWsPort=` теряется при навигации**: после обновления страницы UI молча подключается к `shineup.me`. + +## Безопасность / конфигурация + +5. **Приватный ключ web-push в репозитории**: `SHiNE-server/src/main/resources/application.properties` → `webpush.vapid.private`. + Если он совпадает с продовым — перевыпустить и убрать из git. + +6. По умолчанию сервер представляется логином прода `server.SHiNE.login=shineupme` — при запуске вне прода легко перепутать. + +## На будущее + +7. **Каждое действие перерисовывает страницу целиком** (лайк → шапка на мгновение «Канал / Загрузка…», лента перестраивается), + отсюда «дёрганье» при переходах назад. Нужны оптимистичные обновления (лайк/ответ меняют только свой элемент), + кэш загруженных лент между переходами, обновление без полной перерисовки. + +8. **Кэш модулей после деплоя.** Страницы в `js/app.js` подключаются с метками `?v=…`, а `js/components/*` и `js/services/*` — без меток, + браузер может держать старую версию. Для изменённых страниц метки подняты до `?v=202609260900`; + для остальных модулей стоит проверить заголовки кэширования или ввести общую метку версии, как у CSS и `app.js`. + +## Не сделано в редизайне + +- Автопроверка серверов в настройках. +- Число подписчиков в шапке канала (нет в API). diff --git a/shine-UI/index.html b/shine-UI/index.html index 55d2ed5c..3430e76f 100644 --- a/shine-UI/index.html +++ b/shine-UI/index.html @@ -6,6 +6,7 @@ name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-visual" /> + @@ -24,6 +25,17 @@ document.documentElement.dataset.themeMode = mode; document.documentElement.dataset.theme = resolved; document.documentElement.style.colorScheme = resolved; + // Своя палитра (см. js/services/theme-service.js) применяется до отрисовки, без вспышки. + try { + const applied = JSON.parse(localStorage.getItem('shine-ui-palette-applied-v1') || 'null'); + const colors = applied && applied[resolved]; + if (colors) { + Object.keys(colors).forEach(function (role) { + if (/^#[0-9a-f]{6}$/i.test(colors[role])) document.documentElement.style.setProperty('--' + role, colors[role]); + }); + if (colors.accent) document.documentElement.style.setProperty('--focus-ring', colors.accent); + } + } catch {} }());