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 myLastLevel = 0;
|
||||||
|
let myName = null;
|
||||||
let settingsReturnTo = 'screen-menu'; // куда вернуться после сохранения имени
|
let settingsReturnTo = 'screen-menu'; // куда вернуться после сохранения имени
|
||||||
|
|
||||||
function openSettings(returnTo, name) {
|
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('menu-lore').addEventListener('click', () => showScreen('screen-lore'));
|
||||||
document.getElementById('lore-back').addEventListener('click', () => showScreen('screen-menu'));
|
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('settings-back').addEventListener('click', () => showScreen(settingsReturnTo));
|
||||||
document.getElementById('start-begin').addEventListener('click', () => {
|
document.getElementById('start-begin').addEventListener('click', () => {
|
||||||
currentLevel = 0;
|
currentLevel = 0;
|
||||||
@@ -2173,6 +2174,7 @@ document.getElementById('settings-save').addEventListener('click', async () => {
|
|||||||
btn.textContent = 'Сохраняю…';
|
btn.textContent = 'Сохраняю…';
|
||||||
try {
|
try {
|
||||||
await apiPost('set_name', { name });
|
await apiPost('set_name', { name });
|
||||||
|
myName = name;
|
||||||
showScreen(settingsReturnTo === null ? 'screen-menu' : settingsReturnTo);
|
showScreen(settingsReturnTo === null ? 'screen-menu' : settingsReturnTo);
|
||||||
} catch {
|
} catch {
|
||||||
alert('Не удалось сохранить имя — сервер недоступен');
|
alert('Не удалось сохранить имя — сервер недоступен');
|
||||||
@@ -2193,6 +2195,7 @@ setTimeout(async () => {
|
|||||||
let who = { name: null, lastLevel: 0 };
|
let who = { name: null, lastLevel: 0 };
|
||||||
try { who = await apiGet('whoami', {}); } catch {}
|
try { who = await apiGet('whoami', {}); } catch {}
|
||||||
myLastLevel = who.lastLevel || 0;
|
myLastLevel = who.lastLevel || 0;
|
||||||
|
myName = who.name || null;
|
||||||
document.getElementById('menu-continue').disabled = myLastLevel <= 0;
|
document.getElementById('menu-continue').disabled = myLastLevel <= 0;
|
||||||
if (!who.name) {
|
if (!who.name) {
|
||||||
openSettings(null);
|
openSettings(null);
|
||||||
|
|||||||
Reference in New Issue
Block a user