import React, { PropTypes } from 'react'; import { bindActionCreators } from 'redux'; import { connect } from 'react-redux'; import PreviewFrame from '../components/PreviewFrame'; import { getHTMLFile, getJSFiles, getCSSFiles } from '../reducers/files'; import * as ProjectActions from '../actions/project'; class FullView extends React.Component { componentDidMount() { this.props.getProject(this.props.params.project_id); } render() { return (

{this.props.project.name} {this.props.project.owner ? `by ${this.props.project.owner.username}` : ''}

} fullView isPlaying />
); } } FullView.propTypes = { params: PropTypes.shape({ project_id: PropTypes.string }), project: PropTypes.shape({ name: PropTypes.string, owner: PropTypes.shape({ username: PropTypes.string }) }).isRequired, htmlFile: PropTypes.object, jsFiles: PropTypes.array, cssFiles: PropTypes.array, getProject: PropTypes.func.isRequired, files: PropTypes.array }; function mapStateToProps(state) { return { user: state.user, htmlFile: getHTMLFile(state.files), jsFiles: getJSFiles(state.files), cssFiles: getCSSFiles(state.files), project: state.project, files: state.files }; } function mapDispatchToProps(dispatch) { return bindActionCreators(ProjectActions, dispatch); } export default connect(mapStateToProps, mapDispatchToProps)(FullView);