Skip to content

Commit 6a29f8e

Browse files
committed
Use class for DefaultResolver to improve extensibility
1 parent 8f53b80 commit 6a29f8e

File tree

4 files changed

+29
-21
lines changed

4 files changed

+29
-21
lines changed

js/src/common/compat.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import ItemList from './utils/ItemList';
77
import mixin from './utils/mixin';
88
import humanTime from './utils/humanTime';
99
import computed from './utils/computed';
10-
import defaultResolver from './utils/defaultResolver';
10+
import DefaultResolver from './utils/DefaultResolver';
1111
import Drawer from './utils/Drawer';
1212
import anchorScroll from './utils/anchorScroll';
1313
import RequestError from './utils/RequestError';
@@ -77,7 +77,7 @@ export default {
7777
'utils/mixin': mixin,
7878
'utils/humanTime': humanTime,
7979
'utils/computed': computed,
80-
'utils/defaultResolver': defaultResolver,
80+
'utils/DefaultResolver': DefaultResolver,
8181
'utils/Drawer': Drawer,
8282
'utils/anchorScroll': anchorScroll,
8383
'utils/RequestError': RequestError,
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import Mithril from 'mithril';
2+
3+
/**
4+
* Generates a route resolver for a given component, to which it provides
5+
* a key as a 'routeName' attr.
6+
*/
7+
export default class DefaultResolver {
8+
component: Mithril.Component;
9+
routeName: string;
10+
11+
constructor(component, routeName) {
12+
this.component = component;
13+
this.routeName = routeName;
14+
}
15+
16+
onmatch(args, requestedPath, route) {
17+
return this.component;
18+
}
19+
20+
render(vnode) {
21+
vnode.attrs.routeName = this.routeName;
22+
23+
return vnode;
24+
}
25+
}

js/src/common/utils/defaultResolver.ts

Lines changed: 0 additions & 17 deletions
This file was deleted.

js/src/common/utils/mapRoutes.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import defaultResolver from './defaultResolver.ts';
1+
import DefaultResolver from './DefaultResolver.ts';
22

33
/**
44
* The `mapRoutes` utility converts a map of named application routes into a
@@ -19,7 +19,7 @@ export default function mapRoutes(routes, basePath = '') {
1919
if ('render' in route.component || 'onmatch' in route.component) {
2020
map[basePath + route.path] = route.component;
2121
} else {
22-
map[basePath + route.path] = defaultResolver(route.component, key);
22+
map[basePath + route.path] = new DefaultResolver(route.component, key);
2323
}
2424
}
2525

0 commit comments

Comments
 (0)