File tree Expand file tree Collapse file tree 2 files changed +15
-14
lines changed Expand file tree Collapse file tree 2 files changed +15
-14
lines changed Original file line number Diff line number Diff line change @@ -49,22 +49,14 @@ export default class Router {
49
49
} )
50
50
}
51
51
52
- async update ( route , data ) {
53
- data . Component = evalScript ( data . component ) . default
54
- delete data . component
55
- this . components [ route ] = data
52
+ update ( route , Component ) {
53
+ const data = this . components [ route ] || { }
54
+ const newData = { ... data , Component }
55
+ this . components [ route ] = newData
56
56
57
57
if ( route === this . route ) {
58
- let props
59
- try {
60
- props = await this . getInitialProps ( data . Component , { } )
61
- } catch ( err ) {
62
- if ( err . cancelled ) return false
63
- throw err
64
- }
65
- this . notify ( { ...data , props } )
58
+ this . notify ( newData )
66
59
}
67
- return true
68
60
}
69
61
70
62
back ( ) {
Original file line number Diff line number Diff line change
1
+ import { resolve , relative } from 'path'
1
2
2
3
module . exports = function ( content ) {
3
4
this . cacheable ( )
4
5
6
+ const route = getRoute ( this )
7
+
5
8
return content + `
6
9
if (module.hot) {
7
10
module.hot.accept()
8
11
if ('idle' !== module.hot.status()) {
9
12
const Component = module.exports.default || module.exports
10
- next.router.notify({ Component } )
13
+ next.router.update(' ${ route } ', Component)
11
14
}
12
15
}
13
16
`
14
17
}
18
+
19
+ function getRoute ( loaderContext ) {
20
+ const pagesDir = resolve ( loaderContext . options . context , 'pages' )
21
+ const path = loaderContext . resourcePath
22
+ return '/' + relative ( pagesDir , path ) . replace ( / ( ( ^ | \/ ) i n d e x ) ? \. j s $ / , '' )
23
+ }
You can’t perform that action at this time.
0 commit comments