routes.ts 4,3 КБ
Newer Older
Medvedev Anton's avatar
Medvedev Anton включено в состав коммита
1
import { RouteRecordRaw } from 'vue-router';
daniilft's avatar
daniilft включено в состав коммита
2
import { useCurrentUserStore } from 'src/stores/current-user';
Medvedev Anton's avatar
Medvedev Anton включено в состав коммита
3

daniilft's avatar
daniilft включено в состав коммита
4
const routes: RouteRecordRaw[] = [
Medvedev Anton's avatar
Medvedev Anton включено в состав коммита
5
6
  {
    path: '/',
daniilft's avatar
daniilft включено в состав коммита
7
    name: 'start',
avathar's avatar
avathar включено в состав коммита
8
    meta: { title: 'Start' },
daniilft's avatar
daniilft включено в состав коммита
9
    component: () => import('layouts/IndexLayout.vue'),
avathar's avatar
avathar включено в состав коммита
10
11
    beforeEnter: (to, from) => {
      const store = useCurrentUserStore();
daniilft's avatar
daniilft включено в состав коммита
12
      if (store.getUserId) {
avathar's avatar
avathar включено в состав коммита
13
        return { name: 'projects' };
daniilft's avatar
daniilft включено в состав коммита
14
      }
avathar's avatar
avathar включено в состав коммита
15
      return;
daniilft's avatar
daniilft включено в состав коммита
16
    },
Medvedev Anton's avatar
Medvedev Anton включено в состав коммита
17
  },
Georgiy Medvedev's avatar
#16    
Georgiy Medvedev включено в состав коммита
18
  {
daniilft's avatar
daniilft включено в состав коммита
19
    path: '/projects',
Georgiy Medvedev's avatar
#16    
Georgiy Medvedev включено в состав коммита
20
21
    component: () => import('layouts/MainLayout.vue'),
    children: [
avathar's avatar
avathar включено в состав коммита
22
23
24
25
26
27
28
29
30
31
32
33
34
      {
        path: '/projects/:uuid/',
        name: 'project',
        meta: { title: 'Project' },
        component: () => import('pages/CurrentProjectPage.vue'),
        beforeEnter: (to, from) => {
          const store = useCurrentUserStore();
          if (!store.getUserId) {
            return { name: 'start' };
          }
          return;
        },
      },
daniilft's avatar
daniilft включено в состав коммита
35
36
37
      {
        path: '',
        name: 'projects',
avathar's avatar
avathar включено в состав коммита
38
        meta: { title: 'Projects' },
daniilft's avatar
daniilft включено в состав коммита
39
        component: () => import('pages/ProjectsPage.vue'),
avathar's avatar
avathar включено в состав коммита
40
41
        beforeEnter: (to, from) => {
          const store = useCurrentUserStore();
daniilft's avatar
daniilft включено в состав коммита
42
          if (!store.getUserId) {
avathar's avatar
avathar включено в состав коммита
43
            return { name: 'start' };
daniilft's avatar
daniilft включено в состав коммита
44
          }
avathar's avatar
avathar включено в состав коммита
45
          return;
daniilft's avatar
daniilft включено в состав коммита
46
47
48
49
50
        },
      },
      {
        path: '/login',
        name: 'login',
avathar's avatar
avathar включено в состав коммита
51
        meta: { title: 'Login' },
daniilft's avatar
daniilft включено в состав коммита
52
        component: () => import('pages/LoginPage.vue'),
avathar's avatar
avathar включено в состав коммита
53
54
        beforeEnter: (to, from) => {
          const store = useCurrentUserStore();
daniilft's avatar
daniilft включено в состав коммита
55
          if (store.getUserId) {
avathar's avatar
avathar включено в состав коммита
56
            return { name: 'projects' };
daniilft's avatar
daniilft включено в состав коммита
57
          }
avathar's avatar
avathar включено в состав коммита
58
          return;
daniilft's avatar
daniilft включено в состав коммита
59
60
        },
      },
daniilft's avatar
daniilft включено в состав коммита
61
62
63
64
65
66
67
68
69
70
71
72
73
      {
        path: '/registration',
        name: 'registration',
        meta: { title: 'registration' },
        component: () => import('pages/RegistrationPage.vue'),
        beforeEnter: (to, from) => {
          const store = useCurrentUserStore();
          if (store.getUserId) {
            return { name: 'projects' };
          }
          return;
        },
      },
daniilft's avatar
daniilft включено в состав коммита
74
75
76
      {
        path: '/profile',
        name: 'profile',
avathar's avatar
avathar включено в состав коммита
77
        meta: { title: 'Profile' },
daniilft's avatar
daniilft включено в состав коммита
78
        component: () => import('pages/ProfilePage.vue'),
avathar's avatar
avathar включено в состав коммита
79
80
        beforeEnter: (to, from) => {
          const store = useCurrentUserStore();
daniilft's avatar
daniilft включено в состав коммита
81
          if (!store.getUserId) {
avathar's avatar
avathar включено в состав коммита
82
            return { name: 'start' };
daniilft's avatar
daniilft включено в состав коммита
83
          }
avathar's avatar
avathar включено в состав коммита
84
85
86
87
88
89
          return;
        },
      },
      {
        path: '/endless',
        name: 'endless',
avathar's avatar
avathar включено в состав коммита
90
        meta: { title: 'Endless' },
avathar's avatar
avathar включено в состав коммита
91
92
93
94
95
96
97
        component: () => import('pages/EndlessPage.vue'),
        beforeEnter: (to, from) => {
          const store = useCurrentUserStore();
          // if (!store.getUserId) {
          //   return { name: 'start' };
          // }
          return;
daniilft's avatar
daniilft включено в состав коммита
98
99
        },
      },
avathar's avatar
avathar включено в состав коммита
100
101
102
      {
        path: '/endless2',
        name: 'endless2',
avathar's avatar
avathar включено в состав коммита
103
        meta: { title: 'Endless' },
avathar's avatar
avathar включено в состав коммита
104
105
106
107
108
109
110
111
112
        component: () => import('pages/EndlessPage2.vue'),
        beforeEnter: (to, from) => {
          const store = useCurrentUserStore();
          // if (!store.getUserId) {
          //   return { name: 'start' };
          // }
          return;
        },
      },
Парфиненко Роман Сергеевич's avatar
Парфиненко Роман Сергеевич включено в состав коммита
113
114
115
116
117
118
119
120
121
122
123
124
125
      // {
      //   path: '/endless3/:uuid',
      //   name: 'endless3',
      //   meta: { title: 'Endless' },
      //   component: () => import('pages/canvas/ActualCanvas.vue'),
      //   beforeEnter: (to, from) => {
      //     const store = useCurrentUserStore();
      //     // if (!store.getUserId) {
      //     //   return { name: 'start' };
      //     // }
      //     return;
      //   },
      // },
126
127
128
129
130
      {
        path: '/privacypolicy',
        name: 'privacypolicy',
        component: () => import('pages/PrivacyPolicyPage.vue'),
      },
Georgiy Medvedev's avatar
#16    
Georgiy Medvedev включено в состав коммита
131
132
    ],
  },
Парфиненко Роман Сергеевич's avatar
Парфиненко Роман Сергеевич включено в состав коммита
133
134
  {
    path: '/endless3/:uuid',
Парфиненко Роман Сергеевич's avatar
Парфиненко Роман Сергеевич включено в состав коммита
135
    component: () => import('layouts/CanvasLayout.vue'),
Парфиненко Роман Сергеевич's avatar
Парфиненко Роман Сергеевич включено в состав коммита
136
137
138
139
140
    children: [
      {
        path: '/projects/:uuid/',
        name: 'endless3',
        meta: { title: 'Endless' },
Парфиненко Роман Сергеевич's avatar
Парфиненко Роман Сергеевич включено в состав коммита
141
        component: () => import('pages/canvas/ActualCanvas.vue'),
Парфиненко Роман Сергеевич's avatar
Парфиненко Роман Сергеевич включено в состав коммита
142
143
144
145
146
147
148
149
150
151
        beforeEnter: (to, from) => {
          const store = useCurrentUserStore();
          if (!store.getUserId) {
            return { name: 'start' };
          }
          return;
        },
      },
    ],
  },
Medvedev Anton's avatar
Medvedev Anton включено в состав коммита
152

daniilft's avatar
daniilft включено в состав коммита
153
154
  // Always leave this as last one,
  // but you can also remove it
Medvedev Anton's avatar
Medvedev Anton включено в состав коммита
155
156
157
158
159
160
  {
    path: '/:catchAll(.*)*',
    component: () => import('pages/ErrorNotFound.vue'),
  },
];

Georgiy Medvedev's avatar
#16    
Georgiy Medvedev включено в состав коммита
161
export default routes;