@@ -2,31 +2,38 @@ import React, {Component} from 'react';
2
2
3
3
import './ComponentsViewer.css' ;
4
4
5
+ const queryParamNames = {
6
+ demoName : "demo"
7
+ } ;
8
+
5
9
class ComponentsViewer extends Component {
6
10
constructor ( props ) {
7
11
super ( props ) ;
8
12
const { registry} = this . props ;
9
13
10
- this . state = { selectedName : registry . names [ 0 ] } ;
14
+ this . state = { selectedDemoName : registry . demoNames [ 0 ] } ;
11
15
}
12
16
13
- selectComponent = ( name ) => this . setState ( { selectedName : name } ) ;
17
+ selectDemo = ( demoName ) => {
18
+ this . setState ( { selectedDemoName : demoName } ) ;
19
+ window . history . pushState ( { } , null , `?${ queryParamNames . demoName } =` + demoName ) ;
20
+ } ;
14
21
15
22
render ( ) {
16
23
const { registry} = this . props ;
17
- const { selectedName } = this . state ;
24
+ const { selectedDemoName } = this . state ;
18
25
19
- const componentsDemo = registry . findComponentsDemoByName ( selectedName ) ;
26
+ const componentsDemo = registry . findComponentsDemoByName ( selectedDemoName ) ;
20
27
21
28
return (
22
29
< div className = "components-viewer" >
23
30
< div className = "toc" >
24
- { registry . names . map ( name => {
25
- const isSelected = selectedName === name ;
31
+ { registry . demoNames . map ( name => {
32
+ const isSelected = selectedDemoName === name ;
26
33
const className = "name" + ( isSelected ? " selected" : "" ) ;
27
34
28
35
return (
29
- < div key = { name } className = { className } onClick = { ( ) => this . selectComponent ( name ) } >
36
+ < div key = { name } className = { className } onClick = { ( ) => this . selectDemo ( name ) } >
30
37
{ name }
31
38
</ div >
32
39
)
@@ -40,6 +47,13 @@ class ComponentsViewer extends Component {
40
47
)
41
48
}
42
49
50
+ componentDidMount ( ) {
51
+ const searchParams = new URLSearchParams ( document . location . search ) ;
52
+ const selected = searchParams . get ( queryParamNames . demoName ) ;
53
+ if ( selected ) {
54
+ this . setState ( { selectedDemoName : selected } ) ;
55
+ }
56
+ }
43
57
}
44
58
45
59
export default ComponentsViewer ;
0 commit comments