1
1
import React from 'react' ;
2
2
import App , { Container } from 'next/app' ;
3
+ import Head from 'next/head' ;
4
+ import { Resolver } from '../../../' ;
5
+ import CDNAdapter from '../../../cdn' ;
3
6
4
7
export default class MyApp extends App {
5
8
static async getInitialProps ( { Component, ctx } ) {
@@ -9,33 +12,39 @@ export default class MyApp extends App {
9
12
pageProps = await Component . getInitialProps ( ctx ) ;
10
13
}
11
14
12
- return import ( '../../../server' ) . then ( async ( { Resolver, CDNAdapter} ) => {
13
- const cssResolver = new Resolver ( Component , new CDNAdapter ( ) ) ;
14
- const css = await cssResolver . render ( ) ;
15
-
16
- return { pageProps, css } ;
17
- } ) . catch ( ( ) => {
18
- return { pageProps } ;
19
- } ) ;
20
-
21
- // console.log(CSS);
15
+ const cssResolver = new Resolver (
16
+ React . createElement ( Component , pageProps ) ,
17
+ new CDNAdapter ( {
18
+ cdnRoot : '/static' , /* Map to nextjs static folder */
19
+ } ) ,
20
+ ) ;
22
21
22
+ /* Rather than use .render(), lets return the raw response so we can trasnform it. */
23
+ const rawStyles = await cssResolver . resolve ( ) ;
23
24
25
+ /* We don't want everything sent down to the client, let's only send this. */
26
+ const styles = rawStyles . map ( style => {
27
+ return style . path ;
28
+ } ) ;
24
29
25
- // const cssResolver = new Resolver(Component, new CDNAdapter());
26
- // const css = await cssResolver.render();
27
-
28
- // console.log(css);
29
-
30
- return { pageProps } ;
30
+ return { pageProps, styles } ;
31
31
}
32
32
33
33
render ( ) {
34
- const { Component, pageProps, css } = this . props ;
35
- console . log ( css ) ;
34
+ const { Component, pageProps, styles } = this . props ;
36
35
37
36
return (
38
37
< Container >
38
+ < Head >
39
+ {
40
+ styles . map ( style => {
41
+ /* Render a link style using react for each stylesheet found */
42
+ return (
43
+ < link rel = "stylesheet" href = { style } />
44
+ ) ;
45
+ } )
46
+ }
47
+ </ Head >
39
48
< Component { ...pageProps } />
40
49
</ Container >
41
50
)
0 commit comments