All files / components/Admin index.vue

100% Statements 4/4
100% Branches 2/2
100% Functions 1/1
100% Lines 4/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49                      1x   1x   2x                                                         1x        
<template>
  <div class="w-100 h-100">
    <div
      v-if="loading"
      class="w-100 vh-100 d-flex align-items-center justify-content-center"
    >
      <Loader />
    </div>
    <slot v-else name="page"></slot>
  </div>
</template>
 
<script>
import { mapGetters } from "vuex";
 
import Loader from "~/components/common/Loader";
 
export default {
  name: "Admin",
  components: { Loader },
  data: () => ({ loading: true }),
  computed: {
    ...mapGetters({
      user: "auth/user",
    }),
  },
  mounted() {
    this.loading = true;
 
    if (!this.user) {
      this.$router.push("/admin/login");
    } else {
      const { role } = this.user;
      const { type } = role;
 
      if (type === "authenticated") {
        const { path } = this.$route;
        this.$router.push(path);
      } else {
        this.$router.push("/admin/login");
      }
    }
    this.loading = false;
  },
};
</script>
 
<style scoped>
</style>