Fix: settings screen didn't show current name when opened from menu
menu-settings called openSettings('screen-menu') without the name arg —
input always came up blank even though the name was already saved
server-side. Track myName client-side (set on bootstrap + after a
successful save) and pass it through.
This commit is contained in:
+4
-1
@@ -2123,6 +2123,7 @@ function showScreen(id) {
|
||||
}
|
||||
|
||||
let myLastLevel = 0;
|
||||
let myName = null;
|
||||
let settingsReturnTo = 'screen-menu'; // куда вернуться после сохранения имени
|
||||
|
||||
function openSettings(returnTo, name) {
|
||||
@@ -2144,7 +2145,7 @@ document.getElementById('menu-continue').addEventListener('click', () => {
|
||||
});
|
||||
document.getElementById('menu-lore').addEventListener('click', () => showScreen('screen-lore'));
|
||||
document.getElementById('lore-back').addEventListener('click', () => showScreen('screen-menu'));
|
||||
document.getElementById('menu-settings').addEventListener('click', () => openSettings('screen-menu'));
|
||||
document.getElementById('menu-settings').addEventListener('click', () => openSettings('screen-menu', myName));
|
||||
document.getElementById('settings-back').addEventListener('click', () => showScreen(settingsReturnTo));
|
||||
document.getElementById('start-begin').addEventListener('click', () => {
|
||||
currentLevel = 0;
|
||||
@@ -2173,6 +2174,7 @@ document.getElementById('settings-save').addEventListener('click', async () => {
|
||||
btn.textContent = 'Сохраняю…';
|
||||
try {
|
||||
await apiPost('set_name', { name });
|
||||
myName = name;
|
||||
showScreen(settingsReturnTo === null ? 'screen-menu' : settingsReturnTo);
|
||||
} catch {
|
||||
alert('Не удалось сохранить имя — сервер недоступен');
|
||||
@@ -2193,6 +2195,7 @@ setTimeout(async () => {
|
||||
let who = { name: null, lastLevel: 0 };
|
||||
try { who = await apiGet('whoami', {}); } catch {}
|
||||
myLastLevel = who.lastLevel || 0;
|
||||
myName = who.name || null;
|
||||
document.getElementById('menu-continue').disabled = myLastLevel <= 0;
|
||||
if (!who.name) {
|
||||
openSettings(null);
|
||||
|
||||
Reference in New Issue
Block a user