@@ -8,6 +8,7 @@ import js from 'react-syntax-highlighter/dist/languages/hljs/javascript';
8
8
import styleLight from '../styles/hljs/hljs.light' ;
9
9
import styleDark from '../styles/hljs/hljs.dark' ;
10
10
import { patterns } from '../static/patterns' ;
11
+ import { restart } from '../actions/restart' ;
11
12
import { getMode } from '../selectors' ;
12
13
13
14
SyntaxHighlighter . registerLanguage ( 'javascript' , js ) ;
@@ -39,50 +40,63 @@ const StyledLink = styled(Link)`
39
40
}
40
41
` ;
41
42
42
- const Pattern = ( { match, mode } ) => {
43
- const {
44
- params : { id }
45
- } = match ;
43
+ // const Pattern = ({ match, mode }) => {
44
+ class Pattern extends React . Component {
45
+ componentDidMount ( ) {
46
+ this . props . reset ( ) ;
47
+ }
46
48
47
- const pattern = patterns . filter ( item => item . id === id ) [ 0 ] ;
49
+ render ( ) {
50
+ const {
51
+ params : { id }
52
+ } = this . props . match ;
48
53
49
- const style = mode === 'dark' ? styleDark : styleLight ;
54
+ const pattern = patterns . filter ( item => item . id === id ) [ 0 ] ;
50
55
51
- return (
52
- < StyledPattern >
53
- < StyledLink to = "/patterns" > ← Back to Patterns List</ StyledLink >
54
- { pattern && (
55
- < React . Fragment >
56
- < h2 > { pattern . name } </ h2 >
57
- < p >
58
- < Memo > Type:</ Memo >
59
- { pattern . type } pattern
60
- </ p >
61
- < p >
62
- < Memo > Description:</ Memo >
63
- { `This pattern ${ pattern . hint } .` }
64
- </ p >
56
+ const style = this . props . mode === 'dark' ? styleDark : styleLight ;
65
57
66
- < h3 > ES5</ h3 >
67
- < SyntaxHighlighter language = "javascript" style = { style } >
68
- { pattern . codeES5 }
69
- </ SyntaxHighlighter >
58
+ return (
59
+ < StyledPattern >
60
+ < StyledLink to = "/patterns" > ← Back to Patterns List</ StyledLink >
61
+ { pattern && (
62
+ < React . Fragment >
63
+ < h2 > { pattern . name } </ h2 >
64
+ < p >
65
+ < Memo > Type:</ Memo >
66
+ { pattern . type } pattern
67
+ </ p >
68
+ < p >
69
+ < Memo > Description:</ Memo >
70
+ { `This pattern ${ pattern . hint } .` }
71
+ </ p >
70
72
71
- < h3 > ES6</ h3 >
72
- < SyntaxHighlighter language = "javascript" style = { style } >
73
- { pattern . codeES6 }
74
- </ SyntaxHighlighter >
75
- </ React . Fragment >
76
- ) }
77
- </ StyledPattern >
78
- ) ;
79
- } ;
73
+ < h3 > ES5</ h3 >
74
+ < SyntaxHighlighter language = "javascript" style = { style } >
75
+ { pattern . codeES5 }
76
+ </ SyntaxHighlighter >
77
+
78
+ < h3 > ES6</ h3 >
79
+ < SyntaxHighlighter language = "javascript" style = { style } >
80
+ { pattern . codeES6 }
81
+ </ SyntaxHighlighter >
82
+ </ React . Fragment >
83
+ ) }
84
+ </ StyledPattern >
85
+ ) ;
86
+ }
87
+ }
80
88
81
89
Pattern . propTypes = {
82
90
match : PropTypes . object . isRequired ,
83
- mode : PropTypes . string . isRequired
91
+ mode : PropTypes . string . isRequired ,
92
+ reset : PropTypes . func . isRequired
84
93
} ;
85
94
86
- export default connect ( state => ( {
87
- mode : getMode ( state )
88
- } ) ) ( Pattern ) ;
95
+ export default connect (
96
+ state => ( {
97
+ mode : getMode ( state )
98
+ } ) ,
99
+ {
100
+ reset : ( ) => restart ( )
101
+ }
102
+ ) ( Pattern ) ;
0 commit comments