This repository has been archived by the owner on Nov 26, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
router.js
143 lines (135 loc) · 3.41 KB
/
router.js
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
import Vue from 'vue'
import Router from 'vue-router'
import { scrollBehavior } from '~/utils'
Vue.use(Router)
const page = (path) => () =>
import(`~/pages/${path}`).then((m) => m.default || m)
const pageUsers = (path) => () =>
import(`~/pages/users/${path}`).then((m) => m.default || m)
const routes = [
// Home
{ path: '/', name: 'welcome', component: page('welcome.vue') },
// 個人ページ
{
path: '/pages/:user',
name: 'pages.user',
component: page('pages/_user.vue')
},
// 作品ページ
{
path: '/pages/:user/storages/:storageId',
name: 'pages.storages.show',
component: page('pages/storages/_storageId.vue')
},
// 作品一覧
{
path: '/storages',
name: 'users.storages',
component: pageUsers('lists/storages.vue')
},
// ダッシュボード
{
path: '/users/dashboard',
name: 'users.dashboard',
component: pageUsers('dashboard.vue')
},
// 自分のポートフォリオ編集
{
path: '/users/page/edit',
name: 'users.page.edit',
component: pageUsers('page/edit.vue')
},
// 自分の作品一覧
{
path: '/users/storages',
name: 'users.storages.index',
component: pageUsers('storages/index.vue')
},
// 作品追加
{
path: '/users/storages/create',
name: 'users.storages.create',
component: pageUsers('storages/create.vue')
},
// 作品編集
{
path: '/users/storages/:storageId/edit',
name: 'users.storages.edit',
component: pageUsers('storages/edit.vue')
},
// 設定
{
path: '/users/settings',
name: 'users.settings.index',
component: pageUsers('settings/index.vue')
},
// パスワードの変更
{
path: '/users/settings/password',
name: 'users.settings.password',
component: pageUsers('settings/password.vue')
},
// ユーザー名を変更する
{
path: '/users/settings/username',
name: 'users.settings.username',
component: pageUsers('settings/username.vue')
},
// メールアドレスを変更する
{
path: '/users/settings/email',
name: 'users.settings.email',
component: pageUsers('settings/email.vue')
},
// 言語設定
{
path: '/users/settings/locale',
name: 'users.settings.locale',
component: pageUsers('settings/locale.vue')
},
{
path: '/users/settings/success',
name: 'users.settings.success',
component: pageUsers('settings/success.vue')
},
// アカウントを削除する
{
path: '/users/settings/deactivate',
name: 'users.settings.deactivate',
component: pageUsers('settings/deactivate.vue')
},
{ path: '/login', name: 'login', component: page('auth/login.vue') },
{ path: '/register', name: 'register', component: page('auth/register.vue') },
{
path: '/password/reset',
name: 'password.request',
component: page('auth/password/email.vue')
},
{
path: '/password/reset/success',
name: 'password.reset.success',
component: page('auth/password/success.vue')
},
{
path: '/password/reset/:token',
name: 'password.reset',
component: page('auth/password/reset.vue')
},
{
path: '/email/verify/:id',
name: 'verification.verify',
component: page('auth/verification/verify.vue')
},
{
path: '/email/resend',
name: 'verification.resend',
component: page('auth/verification/resend.vue')
}
]
export function createRouter() {
return new Router({
routes,
scrollBehavior,
mode: 'history'
})
}