1
1
import CodeSurfer from "code-surfer" ;
2
2
import React from "react" ;
3
- import { withDeck , updaters } from "mdx-deck" ;
4
- import { withTheme } from "styled-components" ;
3
+ import { withContext } from "@ mdx-deck/components"
4
+ import { withTheme } from "emotion-theming"
5
5
import memoizeOne from "memoize-one" ;
6
6
7
7
const Notes = ( { notes } ) =>
@@ -17,14 +17,10 @@ const Title = ({ title }) =>
17
17
class InnerCodeSurfer extends React . Component {
18
18
constructor ( props ) {
19
19
super ( props ) ;
20
- const { update, index } = props . deck ;
20
+ const { register, index } = props . context
21
+ if ( typeof register !== 'function' ) return
21
22
const parsedSteps = this . parseSteps ( props . steps ) ;
22
- const maxStep = parsedSteps . length - 1 ;
23
- update ( updaters . setSteps ( index , maxStep ) ) ;
24
- }
25
-
26
- shouldComponentUpdate ( nextProps ) {
27
- return ! ! nextProps . deck . active ;
23
+ register ( index , { steps : parsedSteps . length - 1 } )
28
24
}
29
25
30
26
parseSteps = memoizeOne ( ( steps , notes ) => {
@@ -50,6 +46,7 @@ class InnerCodeSurfer extends React.Component {
50
46
51
47
render ( ) {
52
48
let {
49
+ context,
53
50
code,
54
51
steps,
55
52
title,
@@ -60,7 +57,8 @@ class InnerCodeSurfer extends React.Component {
60
57
...rest
61
58
} = this . props ;
62
59
63
- const stepIndex = this . props . deck . step || 0 ;
60
+ const { step } = context
61
+ const stepIndex = step || 0 ;
64
62
const mdxDeckTheme = theme ;
65
63
prismTheme = prismTheme || mdxDeckTheme . codeSurfer ;
66
64
showNumbers = showNumbers || ( prismTheme && prismTheme . showNumbers ) ;
@@ -121,7 +119,7 @@ class InnerCodeSurfer extends React.Component {
121
119
}
122
120
123
121
// Things I need to do to avoid props name collisions
124
- const EnhancedCodeSurfer = withDeck ( withTheme ( InnerCodeSurfer ) ) ;
122
+ const EnhancedCodeSurfer = withContext ( withTheme ( InnerCodeSurfer ) ) ;
125
123
export default ( { theme, ...rest } ) => (
126
124
< EnhancedCodeSurfer { ...rest } prismTheme = { theme } />
127
125
) ;
0 commit comments