SHA256
Merge UI redesign v4 в смену ключей
Стартовый экран взят из origin/ui-redesign-v4. Конфликты разрешены с сохранением новой логики blockchain key.
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { createTopBar } from '../components/topbar.js';
|
||||
import { iconHtml } from '../components/ui-icon.js';
|
||||
import {
|
||||
authService,
|
||||
authorizeSession,
|
||||
@@ -202,15 +203,27 @@ export function render({ navigate }) {
|
||||
balanceValue.textContent = `${formatSol(parseBalanceSol(state.registrationPayment.balanceSOL), 6)} SOL`;
|
||||
|
||||
const refreshButton = document.createElement('button');
|
||||
refreshButton.className = 'square-btn';
|
||||
refreshButton.className = 'icon-btn payment-refresh-btn';
|
||||
refreshButton.type = 'button';
|
||||
refreshButton.textContent = '↻';
|
||||
refreshButton.title = 'Обновить';
|
||||
refreshButton.innerHTML = iconHtml('refresh');
|
||||
refreshButton.title = 'Обновить баланс';
|
||||
refreshButton.setAttribute('aria-label', 'Обновить баланс');
|
||||
|
||||
// Коротко и по-человечески; технические подробности — во всплывающей подсказке.
|
||||
const showWalletError = (error, fallback) => {
|
||||
status.className = 'status-line is-unavailable';
|
||||
status.textContent = error?.code === 'NO_KEYS'
|
||||
? 'Не хватает данных регистрации. Вернитесь назад и нажмите «Далее».'
|
||||
: fallback;
|
||||
status.title = error?.message || '';
|
||||
status.style.display = '';
|
||||
};
|
||||
|
||||
const refreshBalance = async ({ showError = true, addressOverride = '' } = {}) => {
|
||||
const address = String(addressOverride || walletValue.value || '').trim();
|
||||
if (!address) return null;
|
||||
refreshButton.disabled = true;
|
||||
refreshButton.classList.add('is-loading');
|
||||
try {
|
||||
const balance = await getBalanceSol({
|
||||
endpoint: state.entrySettings.solanaServer,
|
||||
@@ -220,14 +233,11 @@ export function render({ navigate }) {
|
||||
balanceValue.textContent = `${formatSol(balance.sol, 6)} SOL`;
|
||||
return Number(balance.sol) || 0;
|
||||
} catch (error) {
|
||||
if (showError) {
|
||||
status.className = 'status-line is-unavailable';
|
||||
status.textContent = `Не удалось обновить баланс: ${error?.message || 'unknown'}`;
|
||||
status.style.display = '';
|
||||
}
|
||||
if (showError) showWalletError(error, 'Не удалось обновить баланс. Проверьте связь и попробуйте ещё раз.');
|
||||
return null;
|
||||
} finally {
|
||||
refreshButton.disabled = false;
|
||||
refreshButton.classList.remove('is-loading');
|
||||
}
|
||||
};
|
||||
|
||||
@@ -261,9 +271,7 @@ export function render({ navigate }) {
|
||||
await deriveUserWalletAddress();
|
||||
navigate('topup-view');
|
||||
} catch (error) {
|
||||
status.className = 'status-line is-unavailable';
|
||||
status.textContent = `Не удалось подготовить кошелёк: ${error?.message || 'unknown'}`;
|
||||
status.style.display = '';
|
||||
showWalletError(error, 'Не удалось подготовить кошелёк. Попробуйте ещё раз.');
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user