|
- <template>
- <div class="panel">
-
- <side-bar :role="user.status" :active="active">
- </side-bar>
-
- <div v-if="loading" class="page loading">
- <spinner></spinner>
- </div>
-
- <home :user="user" v-else-if="active == 1" />
- <new-estimate :user="user" v-else-if="active == 2" />
-
- </div>
- </template>
-
- <script>
- import SideBar from "./sidebar.vue"
- import Spinner from "./spinner.vue"
- import Home from "./home.vue"
- import NewEstimate from "./new.vue"
-
- const user = {
- firstName: "test",
- lastName: "user",
- id: 12,
- status: 1,
- }
-
- // Used to check the current section of the app generally without a regex match
- // each time.
- function active() {
- if (this.hash == '' || this.hash == '#') {
- return 1
- } else if (/^#new\/?/.exec(this.hash)) {
- return 2
- } else if (/^#estimates\/?/.exec(this.hash)) {
- return 3
- } else if (/^#settings\/?/.exec(this.hash)) {
- return 4
- } else if (/^#sign-out\/?/.exec(this.hash)) {
- return 5
- } else {
- return 0
- }
- }
-
- export default {
- components: { SideBar, Spinner, Home, NewEstimate },
- computed: { active },
- data() {
- return {
- loading: false, user: user, hash: window.location.hash
- }
- },
- created() {
- window.onhashchange = () => this.hash = window.location.hash
- }
- }
- </script>
|