Fix back button
Deploy Spot / deploy (push) Successful in 36s

This commit is contained in:
2026-06-02 11:22:28 +02:00
parent 9ce25e73f0
commit 87a991eaea
5 changed files with 34 additions and 18 deletions
+17 -5
View File
@@ -11,7 +11,7 @@ const aoRoutes = {
export default {
data() {
return {
hash: {page: '', items: []},
hash: {page: '', items: [], prev: {}},
consts: this.appConfig.consts,
mobile: false
};
@@ -20,7 +20,9 @@ export default {
return {
hash: this.hash,
consts: this.consts,
isMobile: () => this.isMobile()
isMobile: () => this.isMobile(),
getAnchor: this.getAnchor,
getPrevAnchor: () => this.getPrevAnchor(),
};
},
computed: {
@@ -28,7 +30,8 @@ export default {
return aoRoutes[this.hash.page];
},
hashSnapshot() {
return JSON.stringify(this.hash);
const { prev, ...asHash } = this.hash;
return JSON.stringify(asHash);
}
},
inject: ['appConfig'],
@@ -49,11 +52,15 @@ export default {
watch: {
hashSnapshot(jNewHash, jOldHash) {
const asNewHash = JSON.parse(jNewHash);
//Sync variable -> #hash
if(asNewHash != this.getBrowserHash()) {
this.setBrowserHash(asNewHash.page, asNewHash.items);
}
//Store previous value
this.hash.prev = JSON.parse(jOldHash);
this.setPageTitle(asNewHash.page);
}
},
@@ -83,8 +90,13 @@ export default {
},
setBrowserHash(sPage = '', asItems = []) {
if(typeof asItems == 'string' && asItems != '') asItems = [asItems];
const sItems = (asItems.length > 0)?(this.consts.hash_sep + asItems.join(this.consts.hash_sep)):'';
window.location.hash = '#' + sPage + sItems;
window.location.hash = this.getAnchor([sPage, ...asItems]);
},
getAnchor(asBreadCrumbs) {
return '#' + asBreadCrumbs.filter(Boolean).join(this.consts.hash_sep);
},
getPrevAnchor() {
return this.getAnchor([this.hash.prev.page, ...this.hash.prev.items]);
}
},
beforeUnmount() {