-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathrouter.js
67 lines (66 loc) · 1.61 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
const axios = require('axios');
const history = require('history');
const {Router} = require('../');
module.exports = new Router({
history: history.createBrowserHistory(),
routes: [
{
name: 'web',
uri: '/capybara-router',
component: require('./pages/base'),
},
{
name: 'web.home',
uri: '/',
onEnter() {
document.title = 'Home - capybara-router';
},
component: require('./pages/home'),
},
{
name: 'web.users',
uri: '/users',
onEnter() {
document.title = 'Users - capybara-router';
},
resolve: {
users: () => axios({
method: 'get',
url: '/capybara-router/example/data/users.json',
}).then(response => response.data),
},
component: require('./pages/users'),
},
{
name: 'web.user',
uri: '/users/{userId:[\\w-]{20}}',
onEnter({user}) {
document.title = `${user.name} - Users - capybara-router`;
},
resolve: {
user: params => axios({
method: 'get',
url: `/capybara-router/example/data/users/${params.userId}.json`,
}).then(response => response.data),
},
component: require('./pages/user'),
},
{
name: 'web.test-error',
uri: '/error',
resolve: {
error: () => axios({
method: 'get',
url: 'https://github.com/404',
}),
},
component: require('./pages/home'),
},
{
name: 'not-found',
uri: '.*',
component: require('./pages/not-found'),
},
],
errorComponent: require('./pages/error-page'),
});