commit e3955153684675c3e3bcba9e1e2bcab448114205
parent c75c44d1016affc629d86450c89ad557abfbd132
Author: Yureka <yuka@yuka.dev>
Date: Sun, 13 Feb 2022 18:24:47 +0100
parent c75c44d1016affc629d86450c89ad557abfbd132
Author: Yureka <yuka@yuka.dev>
Date: Sun, 13 Feb 2022 18:24:47 +0100
prevent infinite loop when going back in journeysView
4 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/src/journeyView.js b/src/journeyView.js @@ -160,7 +160,7 @@ const journeyTemplate = (data) => { <div class="journey"> <header> ${data.slug ? html` - <a class="back icon-back" href="#/${data.slug}" title="${t('back')}">${t('back')}</a> + <a class="back icon-back" href="#/${data.slug}/${settings.journeysViewMode}" title="${t('back')}">${t('back')}</a> ` : html` <a class="back icon-back invisible"></a> `}
diff --git a/src/journeysView.js b/src/journeysView.js @@ -122,8 +122,7 @@ const journeyOverviewTemplate = (entry, slug, key) => { export const journeysView = async (match, isUpdate) => { const slug = match[0]; - const mode = match[1] && match[1].substring(1); - if (!mode) return go(`/${slug}/${settings.journeysViewMode || "canvas"}`); + const mode = match[1]; if (settings.journeysViewMode != mode) { await modifySettings(settings => { @@ -162,7 +161,7 @@ export const moreJourneys = async (slug, mode) => { throw e; } hideOverlay(); - journeysView([slug, `/${settings.journeysViewMode}`], true); + journeysView([slug, settings.journeysViewMode], true); }; const refreshJourneysView = async (slug) => { @@ -174,6 +173,6 @@ const refreshJourneysView = async (slug) => { document.querySelector('.reload').classList.remove('spinning'); throw e; } - journeysView([slug, `/${settings.journeysViewMode}`], true); + journeysView([slug, settings.journeysViewMode], true); document.querySelector('.reload').classList.remove('spinning'); };
diff --git a/src/main.js b/src/main.js @@ -20,7 +20,7 @@ import { showDiv, hideDiv, ElementById } from './helpers.js'; ]); route(/^\/$/, searchView); - route(/^\/([a-zA-Z0-9]+)(\/[a-z]+)?$/, journeysView); + route(/^\/([a-zA-Z0-9]+)\/([a-z]+)$/, journeysView); route(/^\/j\/(.+)$/, journeyView); hideDiv('overlay');
diff --git a/src/searchView.js b/src/searchView.js @@ -159,7 +159,7 @@ const journeysHistoryAction = (journeysHistory, element) => { ConsoleLog(element); showSelectModal(html` <a @click=${() => {setFromHistory(journeysHistory.length - 1 - journeysHistory.indexOf(element));hideOverlay();}}>${t('setfromto')}</a> - <a @click=${() => {go('/'+element.slug);hideOverlay();}}>${t('journeyoverview')}</a> + <a @click=${() => {go('/'+element.slug+'/'+settings.journeysViewMode);hideOverlay();}}>${t('journeyoverview')}</a> ${element.journeyId === '' ? '' : html` <a @click=${() => {go('/'+element.slug+'/'+element.journeyId);hideOverlay();}}>${t('lastjourney')}</a> `} @@ -293,7 +293,7 @@ export const search = async (requestId) => { throw e; } hideOverlay(); - go(`/${data.slug}`); + go(`/${data.slug}/${settings.journeysViewMode}`); return false; };