11import  CodeSurfer  from  "code-surfer" ; 
22import  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"  
55import  memoizeOne  from  "memoize-one" ; 
66
77const  Notes  =  ( {  notes } )  => 
@@ -17,14 +17,10 @@ const Title = ({ title }) =>
1717class  InnerCodeSurfer  extends  React . Component  { 
1818  constructor ( props )  { 
1919    super ( props ) ; 
20-     const  {  update,  index }  =  props . deck ; 
20+     const  {  register,  index }  =  props . context 
21+     if  ( typeof  register  !==  'function' )  return 
2122    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  } ) 
2824  } 
2925
3026  parseSteps  =  memoizeOne ( ( steps ,  notes )  =>  { 
@@ -50,6 +46,7 @@ class InnerCodeSurfer extends React.Component {
5046
5147  render ( )  { 
5248    let  { 
49+       context, 
5350      code, 
5451      steps, 
5552      title, 
@@ -60,7 +57,8 @@ class InnerCodeSurfer extends React.Component {
6057      ...rest 
6158    }  =  this . props ; 
6259
63-     const  stepIndex  =  this . props . deck . step  ||  0 ; 
60+     const  {  step }  =  context 
61+     const  stepIndex  =  step  ||  0 ; 
6462    const  mdxDeckTheme  =  theme ; 
6563    prismTheme  =  prismTheme  ||  mdxDeckTheme . codeSurfer ; 
6664    showNumbers  =  showNumbers  ||  ( prismTheme  &&  prismTheme . showNumbers ) ; 
@@ -121,7 +119,7 @@ class InnerCodeSurfer extends React.Component {
121119} 
122120
123121// Things I need to do to avoid props name collisions 
124- const  EnhancedCodeSurfer  =  withDeck ( withTheme ( InnerCodeSurfer ) ) ; 
122+ const  EnhancedCodeSurfer  =  withContext ( withTheme ( InnerCodeSurfer ) ) ; 
125123export  default  ( {  theme,  ...rest  } )  =>  ( 
126124  < EnhancedCodeSurfer  { ...rest }  prismTheme = { theme }  /> 
127125) ; 
0 commit comments