From 41f82804dd8b9b4a20694933421c05b2d1b33179 Mon Sep 17 00:00:00 2001 From: JunGu Kang <chr0m3.kr@gmail.com> Date: Wed, 4 Dec 2019 15:21:22 +0900 Subject: [PATCH] =?UTF-8?q?View=20=EC=9D=B4=EB=8F=99=EC=8B=9C=20Loading=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 13 ++++++++++++- src/router/index.js | 6 ++++++ src/store/index.js | 7 +++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/App.vue b/src/App.vue index ba12d6b..07d32cf 100644 --- a/src/App.vue +++ b/src/App.vue @@ -9,11 +9,19 @@ <router-view></router-view> </v-container> </v-content> + <v-overlay + :value="isPageLoading" + > + <v-progress-circular + indeterminate + size="64" + ></v-progress-circular> + </v-overlay> </v-app> </template> <script> -import { mapGetters, mapActions } from 'vuex'; +import { mapState, mapGetters, mapActions } from 'vuex'; import NavigationBar from '@/components/NavigationBar.vue'; import NavigationDrawer from '@/components/NavigationDrawer.vue'; @@ -27,6 +35,9 @@ export default { }, computed: { + ...mapState([ + 'isPageLoading', + ]), ...mapGetters([ 'isLogin', ]), diff --git a/src/router/index.js b/src/router/index.js index b2d103e..36412e3 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -27,6 +27,8 @@ const router = new VueRouter({ }); router.beforeEach(async (to, from, next) => { + Store.commit('setPageStartLoading'); + const res = await fetch(APISetting.endpoints.auth.check, APISetting.settings.get); if (res.status === 200) { const json = await res.json(); @@ -38,4 +40,8 @@ router.beforeEach(async (to, from, next) => { next(); }); +router.afterEach(() => { + Store.commit('setPageFinishLoading'); +}); + export default router; diff --git a/src/store/index.js b/src/store/index.js index 2370c13..e1c364d 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -5,6 +5,7 @@ Vue.use(Vuex); export default new Vuex.Store({ state: { + isPageLoading: false, isNavDrawerVisible: true, loginUser: null, }, @@ -12,6 +13,12 @@ export default new Vuex.Store({ isLogin: state => (state.loginUser !== null), }, mutations: { + setPageStartLoading(state) { + state.isPageLoading = true; + }, + setPageFinishLoading(state) { + state.isPageLoading = false; + }, toggleNavDrawer(state) { state.isNavDrawerVisible = !state.isNavDrawerVisible; }, -- GitLab