<commit_before>import React from 'react';
import CursorPane from './CursorPane';
import CanvasPane from './CanvasPane';


export default class Canvas extends React.Component {

    static get propTypes() {
        return {
            width: React.PropTypes.number,
            height: React.PropTypes.number,
        };
    }

    render() {
        let wrapperStyle = {
            position: 'relative',
            width: this.props.width,
            height: this.props.height,
        };

        return (
            <div style={wrapperStyle}>
                <CursorPane {...this.props} {...this.state} />
                <CanvasPane {...this.props} {...this.state} />
            </div>
        );
    }

}<commit_msg>Don't pass null object to child components<commit_after>import React from 'react';
import CursorPane from './CursorPane';
import CanvasPane from './CanvasPane';


export default class Canvas extends React.Component {

    static get propTypes() {
        return {
            width: React.PropTypes.number,
            height: React.PropTypes.number,
        };
    }

    render() {
        let wrapperStyle = {
            position: 'relative',
            width: this.props.width,
            height: this.props.height,
        };

        return (
            <div style={wrapperStyle}>
                <CursorPane {...this.props} />
                <CanvasPane {...this.props} />
            </div>
        );
    }

}
{'fraction_non_alphanumeric': 0.12353347135955832, 'fraction_numerical': 0.0, 'mean_word_length': 1.631578947368421, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5153300', 'n_tokens_mistral': 391, 'n_tokens_neox': 376, 'n_words': 94}