@@ -5,136 +5,95 @@ class App extends React.Component {
5
5
super ( props ) ;
6
6
7
7
this . state = { feature : null } ;
8
+
9
+ this . setFeature = this . setFeature . bind ( this ) ;
8
10
}
9
11
10
12
componentDidMount ( ) {
11
13
switch ( location . hash . slice ( 1 ) ) {
12
14
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 ) ) ;
16
16
break ;
17
17
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 ) ) ;
21
19
break ;
22
20
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 ) ) ;
26
22
break ;
27
23
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 ) ) ;
31
25
break ;
32
26
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 ) ) ;
36
28
break ;
37
29
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 ) ) ;
41
31
break ;
42
32
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 ) ) ;
46
34
break ;
47
35
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 ) ) ;
51
37
break ;
52
38
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 ) ) ;
56
40
break ;
57
41
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 ) ) ;
61
43
break ;
62
44
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 ) ) ;
66
46
break ;
67
47
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 ) ) ;
71
49
break ;
72
50
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 ) ) ;
76
52
break ;
77
53
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 ) ) ;
81
55
break ;
82
56
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 ) ) ;
86
58
break ;
87
59
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 ) ) ;
91
61
break ;
92
62
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 ) ) ;
96
64
break ;
97
65
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 ) ) ;
101
67
break ;
102
68
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 ) ) ;
106
70
break ;
107
71
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 ) ) ;
111
73
break ;
112
74
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 ) ) ;
116
76
break ;
117
77
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 ) ) ;
121
79
break ;
122
80
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 ) ) ;
126
82
break ;
127
83
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 )
130
85
) ;
131
86
break ;
132
87
default :
133
- this . setState ( { feature : null } ) ;
88
+ this . setFeature ( null ) ;
134
89
break ;
135
90
}
136
91
}
137
92
93
+ setFeature ( feature ) {
94
+ this . setState ( { feature } ) ;
95
+ }
96
+
138
97
render ( ) {
139
98
const Feature = this . state . feature ;
140
99
return Feature ? < Feature /> : null ;
0 commit comments