From d232ef1557719d8581042ba04eb99fc289f2c434 Mon Sep 17 00:00:00 2001 From: Richard Lewis Date: Thu, 7 Nov 2019 16:48:45 +0000 Subject: [PATCH] Improve vue routing. --- client/js/router.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/client/js/router.js b/client/js/router.js index 64fe147d..28456a54 100644 --- a/client/js/router.js +++ b/client/js/router.js @@ -20,10 +20,37 @@ const router = new VueRouter({ name: "SignIn", path: "/sign-in", component: SignIn, + beforeEnter(to, from, next) { + // Prevent navigating to sign-in when already signed in + if (store.state.appLoaded) { + next(false); + return; + } + + next(); + }, }, ], }); +router.beforeEach((to, from, next) => { + // Handle closing image viewer with the browser back button + if (!router.app.$refs.app) { + next(); + return; + } + + const imageViewer = router.app.$root.$refs.app.$refs.imageViewer; + + if (imageViewer && imageViewer.link) { + imageViewer.closeViewer(); + next(false); + return; + } + + next(); +}); + router.afterEach((to) => { if (store.state.appLoaded) { router.app.closeSidebarIfNeeded();