From ee3721dfa4fe5822ec1386bda1f6e608dae4dd5b58e82a2b1d2d736270ea60d3 Mon Sep 17 00:00:00 2001 From: AidarKC Date: Wed, 3 Jun 2026 15:57:49 +0400 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20DEVNET=20topup=20=D0=B8=20=D0=B0=D0=B2=D1=82?= =?UTF-8?q?=D0=BE=D0=BF=D0=BE=D0=B4=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D0=BA=D1=83=20=D0=BF=D0=B0=D1=80=D0=BE=D0=BB=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...-03_1610_fix_devnet_topup_и_пароль_autofill.md | 15 +++++++++++++++ VERSION.properties | 4 ++-- shine-UI/js/pages/devnet-topup-view.js | 12 +++++++++++- shine-UI/js/pages/login-password-view.js | 7 +++++++ shine-UI/js/pages/register-view.js | 7 +++++++ shine-UI/server-ui/create-server-pda.html | 2 +- shine-UI/server-ui/js/create-server-pda-page.js | 1 + shine-UI/server-ui/js/update-server-pda-page.js | 2 ++ shine-UI/server-ui/update-server-pda.html | 2 +- 9 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 Dev_Docs/Pending_Features/2026-06-03_1610_fix_devnet_topup_и_пароль_autofill.md diff --git a/Dev_Docs/Pending_Features/2026-06-03_1610_fix_devnet_topup_и_пароль_autofill.md b/Dev_Docs/Pending_Features/2026-06-03_1610_fix_devnet_topup_и_пароль_autofill.md new file mode 100644 index 0000000..2a54d1c --- /dev/null +++ b/Dev_Docs/Pending_Features/2026-06-03_1610_fix_devnet_topup_и_пароль_autofill.md @@ -0,0 +1,15 @@ +# Фикс DEVNET topup и автоподстановки пароля + +- статус: pending +- кратко: исправлена ширина экрана `devnet-topup-view` после успешного пополнения и отключена нежелательная автоподстановка пароля в server UI и на экранах входа/регистрации. + +## Что проверять +- Открыть страницу пополнения DEVNET, выполнить пополнение и убедиться, что после появления `Signature` экран не расширяется по ширине. +- Проверить, что кнопки на странице пополнения остаются аккуратными и не разъезжаются. +- Открыть `server-ui/update-server-pda.html`, загрузить PDA и убедиться, что поле пароля остаётся пустым. +- Проверить обычные экраны входа и регистрации: поле пароля не должно самопроизвольно заполняться длинной строкой. + +## Ожидаемый результат +- Длинная transaction signature переносится по строкам внутри прежней ширины экрана. +- Кнопки сохраняют компактный mobile-first layout. +- Поля пароля пустые, пока пользователь сам ничего не вводил. diff --git a/VERSION.properties b/VERSION.properties index 266d883..8b8b226 100644 --- a/VERSION.properties +++ b/VERSION.properties @@ -1,2 +1,2 @@ -client.version=1.2.119 -server.version=1.2.111 +client.version=1.2.120 +server.version=1.2.112 diff --git a/shine-UI/js/pages/devnet-topup-view.js b/shine-UI/js/pages/devnet-topup-view.js index d2b187b..47a855a 100644 --- a/shine-UI/js/pages/devnet-topup-view.js +++ b/shine-UI/js/pages/devnet-topup-view.js @@ -19,11 +19,14 @@ function readWalletFromUrl() { export function render({ navigate }) { const screen = document.createElement('section'); screen.className = 'stack'; + screen.style.width = '100%'; + screen.style.justifyItems = 'center'; const targetWallet = readWalletFromUrl(); const senderBox = document.createElement('div'); senderBox.className = 'card stack'; + senderBox.style.width = 'min(100%, 320px)'; senderBox.innerHTML = ` Тестовый DEVNET-кошелёк
@@ -32,6 +35,7 @@ export function render({ navigate }) { const targetBox = document.createElement('div'); targetBox.className = 'card stack'; + targetBox.style.width = 'min(100%, 320px)'; targetBox.innerHTML = ` Кошелёк получателя @@ -40,6 +44,10 @@ export function render({ navigate }) { const status = document.createElement('p'); status.className = 'meta-muted'; + status.style.width = 'min(100%, 320px)'; + status.style.overflowWrap = 'anywhere'; + status.style.wordBreak = 'break-word'; + status.style.whiteSpace = 'pre-wrap'; status.textContent = 'Готово к пополнению.'; const fillBtn = document.createElement('button'); @@ -55,6 +63,8 @@ export function render({ navigate }) { const actions = document.createElement('div'); actions.className = 'auth-footer-actions'; + actions.style.width = 'min(100%, 320px)'; + actions.style.justifySelf = 'center'; actions.append(fillBtn, backBtn); let senderAddress = ''; @@ -90,7 +100,7 @@ export function render({ navigate }) { amountSol: TRANSFER_AMOUNT_SOL, }); await updateSenderBalance(); - status.textContent = `Готово. Signature: ${tx.signature}`; + status.textContent = `Готово.\nSignature: ${tx.signature}`; } catch (error) { status.textContent = `Ошибка перевода: ${error?.message || 'unknown'}`; } finally { diff --git a/shine-UI/js/pages/login-password-view.js b/shine-UI/js/pages/login-password-view.js index d982601..5eb1ab9 100644 --- a/shine-UI/js/pages/login-password-view.js +++ b/shine-UI/js/pages/login-password-view.js @@ -22,12 +22,19 @@ export function render({ navigate }) { const loginInput = document.createElement('input'); loginInput.className = 'input'; loginInput.type = 'text'; + loginInput.autocomplete = 'off'; + loginInput.autocapitalize = 'off'; + loginInput.spellcheck = false; loginInput.value = state.loginDraft.login; loginInput.placeholder = 'Введите логин'; const passwordInput = document.createElement('input'); passwordInput.className = 'input'; passwordInput.type = 'password'; + passwordInput.name = 'shine-login-password'; + passwordInput.autocomplete = 'new-password'; + passwordInput.autocapitalize = 'off'; + passwordInput.spellcheck = false; passwordInput.value = state.loginDraft.password; passwordInput.placeholder = 'Введите пароль (можно оставить пустым)'; diff --git a/shine-UI/js/pages/register-view.js b/shine-UI/js/pages/register-view.js index bb2d27b..4492b0a 100644 --- a/shine-UI/js/pages/register-view.js +++ b/shine-UI/js/pages/register-view.js @@ -21,12 +21,19 @@ export function render({ navigate }) { const loginInput = document.createElement('input'); loginInput.className = 'input'; loginInput.type = 'text'; + loginInput.autocomplete = 'off'; + loginInput.autocapitalize = 'off'; + loginInput.spellcheck = false; loginInput.value = state.registrationDraft.login; loginInput.placeholder = 'Введите логин'; const passwordInput = document.createElement('input'); passwordInput.className = 'input'; passwordInput.type = 'password'; + passwordInput.name = 'shine-register-password'; + passwordInput.autocomplete = 'new-password'; + passwordInput.autocapitalize = 'off'; + passwordInput.spellcheck = false; passwordInput.value = state.registrationDraft.password; passwordInput.placeholder = 'Введите пароль (можно оставить пустым)'; diff --git a/shine-UI/server-ui/create-server-pda.html b/shine-UI/server-ui/create-server-pda.html index 8745eab..1de37ce 100644 --- a/shine-UI/server-ui/create-server-pda.html +++ b/shine-UI/server-ui/create-server-pda.html @@ -77,7 +77,7 @@