@@ -5,136 +5,95 @@ class App extends React.Component {
55 super ( props ) ;
66
77 this . state = { feature : null } ;
8+
9+ this . setFeature = this . setFeature . bind ( this ) ;
810 }
911
1012 componentDidMount ( ) {
1113 switch ( location . hash . slice ( 1 ) ) {
1214 case 'array-destructuring' :
13- require . ensure ( [ './features/syntax/ArrayDestructuring' ] , ( ) =>
14- this . setState ( { feature : require ( './features/syntax/ArrayDestructuring' ) . default } )
15- ) ;
15+ require . ensure ( [ ] , ( ) => this . setFeature ( require ( './features/syntax/ArrayDestructuring' ) . default ) ) ;
1616 break ;
1717 case 'array-spread' :
18- require . ensure ( [ './features/syntax/ArraySpread' ] , ( ) =>
19- this . setState ( { feature : require ( './features/syntax/ArraySpread' ) . default } )
20- ) ;
18+ require . ensure ( [ ] , ( ) => this . setFeature ( require ( './features/syntax/ArraySpread' ) . default ) ) ;
2119 break ;
2220 case 'async-await' :
23- require . ensure ( [ './features/syntax/AsyncAwait' ] , ( ) =>
24- this . setState ( { feature : require ( './features/syntax/AsyncAwait' ) . default } )
25- ) ;
21+ require . ensure ( [ ] , ( ) => this . setFeature ( require ( './features/syntax/AsyncAwait' ) . default ) ) ;
2622 break ;
2723 case 'class-properties' :
28- require . ensure ( [ './features/syntax/ClassProperties' ] , ( ) =>
29- this . setState ( { feature : require ( './features/syntax/ClassProperties' ) . default } )
30- ) ;
24+ require . ensure ( [ ] , ( ) => this . setFeature ( require ( './features/syntax/ClassProperties' ) . default ) ) ;
3125 break ;
3226 case 'computed-properties' :
33- require . ensure ( [ './features/syntax/ComputedProperties' ] , ( ) =>
34- this . setState ( { feature : require ( './features/syntax/ComputedProperties' ) . default } )
35- ) ;
27+ require . ensure ( [ ] , ( ) => this . setFeature ( require ( './features/syntax/ComputedProperties' ) . default ) ) ;
3628 break ;
3729 case 'css-inclusion' :
38- require . ensure ( [ './features/webpack/CssInclusion' ] , ( ) =>
39- this . setState ( { feature : require ( './features/webpack/CssInclusion' ) . default } )
40- ) ;
30+ require . ensure ( [ ] , ( ) => this . setFeature ( require ( './features/webpack/CssInclusion' ) . default ) ) ;
4131 break ;
4232 case 'custom-interpolation' :
43- require . ensure ( [ './features/syntax/CustomInterpolation' ] , ( ) =>
44- this . setState ( { feature : require ( './features/syntax/CustomInterpolation' ) . default } )
45- ) ;
33+ require . ensure ( [ ] , ( ) => this . setFeature ( require ( './features/syntax/CustomInterpolation' ) . default ) ) ;
4634 break ;
4735 case 'default-parameters' :
48- require . ensure ( [ './features/syntax/DefaultParameters' ] , ( ) =>
49- this . setState ( { feature : require ( './features/syntax/DefaultParameters' ) . default } )
50- ) ;
36+ require . ensure ( [ ] , ( ) => this . setFeature ( require ( './features/syntax/DefaultParameters' ) . default ) ) ;
5137 break ;
5238 case 'destructuring-and-await' :
53- require . ensure ( [ './features/syntax/DestructuringAndAwait' ] , ( ) =>
54- this . setState ( { feature : require ( './features/syntax/DestructuringAndAwait' ) . default } )
55- ) ;
39+ require . ensure ( [ ] , ( ) => this . setFeature ( require ( './features/syntax/DestructuringAndAwait' ) . default ) ) ;
5640 break ;
5741 case 'file-env-variables' :
58- require . ensure ( [ './features/env/FileEnvVariables' ] , ( ) =>
59- this . setState ( { feature : require ( './features/env/FileEnvVariables' ) . default } )
60- ) ;
42+ require . ensure ( [ ] , ( ) => this . setFeature ( require ( './features/env/FileEnvVariables' ) . default ) ) ;
6143 break ;
6244 case 'generators' :
63- require . ensure ( [ './features/syntax/Generators' ] , ( ) =>
64- this . setState ( { feature : require ( './features/syntax/Generators' ) . default } )
65- ) ;
45+ require . ensure ( [ ] , ( ) => this . setFeature ( require ( './features/syntax/Generators' ) . default ) ) ;
6646 break ;
6747 case 'image-inclusion' :
68- require . ensure ( [ './features/webpack/ImageInclusion' ] , ( ) =>
69- this . setState ( { feature : require ( './features/webpack/ImageInclusion' ) . default } )
70- ) ;
48+ require . ensure ( [ ] , ( ) => this . setFeature ( require ( './features/webpack/ImageInclusion' ) . default ) ) ;
7149 break ;
7250 case 'json-inclusion' :
73- require . ensure ( [ './features/webpack/JsonInclusion' ] , ( ) =>
74- this . setState ( { feature : require ( './features/webpack/JsonInclusion' ) . default } )
75- ) ;
51+ require . ensure ( [ ] , ( ) => this . setFeature ( require ( './features/webpack/JsonInclusion' ) . default ) ) ;
7652 break ;
7753 case 'node-path' :
78- require . ensure ( [ './features/env/NodePath' ] , ( ) =>
79- this . setState ( { feature : require ( './features/env/NodePath' ) . default } )
80- ) ;
54+ require . ensure ( [ ] , ( ) => this . setFeature ( require ( './features/env/NodePath' ) . default ) ) ;
8155 break ;
8256 case 'no-ext-inclusion' :
83- require . ensure ( [ './features/webpack/NoExtInclusion' ] , ( ) =>
84- this . setState ( { feature : require ( './features/webpack/NoExtInclusion' ) . default } )
85- ) ;
57+ require . ensure ( [ ] , ( ) => this . setFeature ( require ( './features/webpack/NoExtInclusion' ) . default ) ) ;
8658 break ;
8759 case 'object-destructuring' :
88- require . ensure ( [ './features/syntax/ObjectDestructuring' ] , ( ) =>
89- this . setState ( { feature : require ( './features/syntax/ObjectDestructuring' ) . default } )
90- ) ;
60+ require . ensure ( [ ] , ( ) => this . setFeature ( require ( './features/syntax/ObjectDestructuring' ) . default ) ) ;
9161 break ;
9262 case 'object-spread' :
93- require . ensure ( [ './features/syntax/ObjectSpread' ] , ( ) =>
94- this . setState ( { feature : require ( './features/syntax/ObjectSpread' ) . default } )
95- ) ;
63+ require . ensure ( [ ] , ( ) => this . setFeature ( require ( './features/syntax/ObjectSpread' ) . default ) ) ;
9664 break ;
9765 case 'promises' :
98- require . ensure ( [ './features/syntax/Promises' ] , ( ) =>
99- this . setState ( { feature : require ( './features/syntax/Promises' ) . default } )
100- ) ;
66+ require . ensure ( [ ] , ( ) => this . setFeature ( require ( './features/syntax/Promises' ) . default ) ) ;
10167 break ;
10268 case 'rest-and-default' :
103- require . ensure ( [ './features/syntax/RestAndDefault' ] , ( ) =>
104- this . setState ( { feature : require ( './features/syntax/RestAndDefault' ) . default } )
105- ) ;
69+ require . ensure ( [ ] , ( ) => this . setFeature ( require ( './features/syntax/RestAndDefault' ) . default ) ) ;
10670 break ;
10771 case 'rest-parameters' :
108- require . ensure ( [ './features/syntax/RestParameters' ] , ( ) =>
109- this . setState ( { feature : require ( './features/syntax/RestParameters' ) . default } )
110- ) ;
72+ require . ensure ( [ ] , ( ) => this . setFeature ( require ( './features/syntax/RestParameters' ) . default ) ) ;
11173 break ;
11274 case 'shell-env-variables' :
113- require . ensure ( [ './features/env/ShellEnvVariables' ] , ( ) =>
114- this . setState ( { feature : require ( './features/env/ShellEnvVariables' ) . default } )
115- ) ;
75+ require . ensure ( [ ] , ( ) => this . setFeature ( require ( './features/env/ShellEnvVariables' ) . default ) ) ;
11676 break ;
11777 case 'svg-inclusion' :
118- require . ensure ( [ './features/webpack/SvgInclusion' ] , ( ) =>
119- this . setState ( { feature : require ( './features/webpack/SvgInclusion' ) . default } )
120- ) ;
78+ require . ensure ( [ ] , ( ) => this . setFeature ( require ( './features/webpack/SvgInclusion' ) . default ) ) ;
12179 break ;
12280 case 'template-interpolation' :
123- require . ensure ( [ './features/syntax/TemplateInterpolation' ] , ( ) =>
124- this . setState ( { feature : require ( './features/syntax/TemplateInterpolation' ) . default } )
125- ) ;
81+ require . ensure ( [ ] , ( ) => this . setFeature ( require ( './features/syntax/TemplateInterpolation' ) . default ) ) ;
12682 break ;
12783 case 'unknown-ext-inclusion' :
128- require . ensure ( [ './features/webpack/UnknownExtInclusion' ] , ( ) =>
129- this . setState ( { feature : require ( './features/webpack/UnknownExtInclusion' ) . default } )
84+ require . ensure ( [ ] , ( ) => this . setFeature ( require ( './features/webpack/UnknownExtInclusion' ) . default )
13085 ) ;
13186 break ;
13287 default :
133- this . setState ( { feature : null } ) ;
88+ this . setFeature ( null ) ;
13489 break ;
13590 }
13691 }
13792
93+ setFeature ( feature ) {
94+ this . setState ( { feature } ) ;
95+ }
96+
13897 render ( ) {
13998 const Feature = this . state . feature ;
14099 return Feature ? < Feature /> : null ;
0 commit comments