Home Reference Source Repository

src/components/CodeSnippet/CodeSnippet.js

/*!
 * Codefolio
 * Copyright(c) 2016 MSMFSD
 * MIT Licensed
 */
import React, { Component, PropTypes } from 'react'
import CssModules from 'react-css-modules'
import hljs from 'highlight.js'
import styles from './CodeSnippet.css'

/**
 * @class CodeSnippet
 * @extends {Component}
 */
class CodeSnippet extends Component {

  componentDidMount () {
    $('pre code').each(function (i, block) {
      hljs.highlightBlock(block)
    })
  }

  componentDidUpdate () {
    $('pre code').each(function (i, block) {
      hljs.highlightBlock(block)
    })
  }

  render () {
    return (
      <div className={this.props.data.display === 'yes' ? 'show' : 'hide'} styleName="cf-code-snippet">
        <p><strong>Code excerpt:</strong></p>
        <pre><code>{this.props.data.code}</code></pre>
      </div>
    )
  }

}

CodeSnippet.propTypes = {
  data: PropTypes.object
}

CodeSnippet = CssModules(CodeSnippet, styles)
export default CodeSnippet