fix(miniapp): remove location.reload() on back-to-home navigation (splash bug)

Every "Назад" / "На главную" button was calling location.reload() which
triggered a full page reload → splash screen appeared again. Fix: replace
reload() with routeByHash() call (global router function from app.js) which
re-renders the role-appropriate home screen from cached window.__zovMe
without any network round-trips.

Affected files: app.js, clients.js, measurements.js, request.js,
assembly.js, podbor.js. Bump asset versions to 20260517b to bust cache.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
wasrusgen 2026-05-17 00:39:12 +03:00
parent cd587f846a
commit 2f50f6e920
7 changed files with 20 additions and 16 deletions

View File

@ -1199,8 +1199,9 @@ async function renderInboxDetail(measurementId) {
</header>
`);
header.querySelector(".podbor-back").addEventListener("click", () => {
// Возврат в главное меню без перезагрузки (иначе сплэш мигает)
location.hash = "";
if (!location.hash) location.reload();
routeByHash();
});
app.appendChild(header);

View File

@ -226,7 +226,7 @@ const Assembly = (function () {
btn.style.display = "none";
result.querySelector("#toHome")?.addEventListener("click", () => {
location.hash = "";
location.reload();
if (typeof routeByHash === "function") routeByHash();
});
result.querySelector("#toDetail")?.addEventListener("click", () => {
location.hash = `#/assembly/${data.id}`;

View File

@ -1804,8 +1804,9 @@ const Clients = (function () {
} else if (backHref) {
location.hash = backHref;
} else {
// Возврат в главное меню — без перезагрузки страницы (иначе сплэш мигает)
location.hash = "";
location.reload();
if (typeof routeByHash === "function") routeByHash();
}
});
return h;

View File

@ -146,7 +146,7 @@ const Measurements = (function () {
`);
h.querySelector(".podbor-back").addEventListener("click", () => {
location.hash = "";
location.reload();
if (typeof routeByHash === "function") routeByHash();
});
h.querySelector("#openChecklist").addEventListener("click", () => {
location.hash = "#/measure/checklist";
@ -969,7 +969,7 @@ const Measurements = (function () {
node.querySelector("#newOne")?.addEventListener("click", () => mount(root));
node.querySelector("#toHome")?.addEventListener("click", () => {
location.hash = "";
location.reload();
if (typeof routeByHash === "function") routeByHash();
});
} catch (e) {
result.innerHTML = `<div class="error">Сеть: ${e.message}</div>`;

View File

@ -108,9 +108,9 @@ const Podbor = (function () {
h.querySelector(".podbor-back").addEventListener("click", () => {
const idx = STEPS.indexOf(currentStep);
if (idx <= 0) {
// Выход из подбора в главный экран кабинета
// Выход из подбора в главный экран кабинета — без перезагрузки (иначе сплэш мигает)
location.hash = "";
location.reload();
if (typeof routeByHash === "function") routeByHash();
} else {
go(STEPS[idx - 1]);
}

View File

@ -208,7 +208,7 @@ const MeasurementRequest = (function () {
form.querySelector("#newOne")?.addEventListener("click", () => mount(root));
form.querySelector("#toHome")?.addEventListener("click", () => {
location.hash = "";
location.reload();
if (typeof routeByHash === "function") routeByHash();
});
} catch (e) {
result.innerHTML = `<div class="error">Сеть: ${e.message}</div>`;
@ -227,8 +227,10 @@ const MeasurementRequest = (function () {
`);
h.querySelector(".podbor-back").addEventListener("click", () => {
if (backHref) location.hash = backHref;
else location.hash = "";
if (!location.hash) location.reload();
else {
location.hash = "";
if (typeof routeByHash === "function") routeByHash();
}
});
return h;
}

View File

@ -38,13 +38,13 @@
<script src="assets/icons.js?v=20260516h"></script>
<script src="assets/podbor.config.js?v=20260516h"></script>
<script src="assets/podbor.picts.js?v=20260516h"></script>
<script src="assets/podbor.js?v=20260516h"></script>
<script src="assets/clients.js?v=20260516h"></script>
<script src="assets/podbor.js?v=20260517b"></script>
<script src="assets/clients.js?v=20260517b"></script>
<script src="assets/zamer-picts.js?v=20260516h"></script>
<script src="assets/measurements.js?v=20260516h"></script>
<script src="assets/request.js?v=20260516h"></script>
<script src="assets/assembly.js?v=20260516h"></script>
<script src="assets/measurements.js?v=20260517b"></script>
<script src="assets/request.js?v=20260517b"></script>
<script src="assets/assembly.js?v=20260517b"></script>
<script src="assets/proposals.js?v=20260516h"></script>
<script src="assets/app.js?v=20260517a"></script>
<script src="assets/app.js?v=20260517b"></script>
</body>
</html>