2016-07-01 17:30:40 +02:00
|
|
|
import React, { PropTypes } from 'react';
|
|
|
|
import { connect } from 'react-redux';
|
|
|
|
import { bindActionCreators } from 'redux';
|
2016-07-05 22:04:14 +02:00
|
|
|
import moment from 'moment';
|
|
|
|
import { Link } from 'react-router';
|
2016-07-01 17:30:40 +02:00
|
|
|
import Nav from '../../../components/Nav';
|
|
|
|
import * as SketchActions from '../actions';
|
|
|
|
import * as ProjectActions from '../../IDE/actions/project';
|
|
|
|
|
|
|
|
class SketchListView extends React.Component {
|
|
|
|
componentDidMount() {
|
|
|
|
this.props.getProjects();
|
|
|
|
}
|
|
|
|
|
|
|
|
render() {
|
|
|
|
return (
|
|
|
|
<div className="sketch-list">
|
|
|
|
<Nav
|
|
|
|
user={this.props.user}
|
2016-08-12 18:45:26 +02:00
|
|
|
newProject={this.props.newProject}
|
2016-07-01 17:30:40 +02:00
|
|
|
saveProject={this.props.saveProject}
|
2016-08-04 01:03:01 +02:00
|
|
|
exportProjectAsZip={this.props.exportProjectAsZip}
|
|
|
|
cloneProject={this.props.cloneProject}
|
2016-07-01 17:30:40 +02:00
|
|
|
/>
|
2016-08-15 19:03:52 +02:00
|
|
|
<div className="sketches-table-container">
|
|
|
|
<table className="sketches-table" summary="table containing all saved projects">
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
<th scope="col">Name</th>
|
|
|
|
<th scope="col">Created</th>
|
|
|
|
<th scope="col">Last Updated</th>
|
2016-07-05 22:04:14 +02:00
|
|
|
</tr>
|
2016-08-15 19:03:52 +02:00
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
{this.props.sketches.map(sketch =>
|
|
|
|
<tr className="sketches-table__row" key={sketch.id}>
|
|
|
|
<td scope="row"><Link to={`/projects/${sketch._id}`}>{sketch.name}</Link></td>
|
|
|
|
<td>{moment(sketch.createdAt).format('MMM D, YYYY')}</td>
|
|
|
|
<td>{moment(sketch.updatedAt).format('MMM D, YYYY')}</td>
|
|
|
|
</tr>
|
|
|
|
)}
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
</div>
|
2016-07-01 17:30:40 +02:00
|
|
|
</div>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
SketchListView.propTypes = {
|
|
|
|
user: PropTypes.object.isRequired,
|
2016-08-12 18:45:26 +02:00
|
|
|
newProject: PropTypes.func.isRequired,
|
2016-07-01 17:30:40 +02:00
|
|
|
saveProject: PropTypes.func.isRequired,
|
|
|
|
getProjects: PropTypes.func.isRequired,
|
2016-08-04 01:03:01 +02:00
|
|
|
sketches: PropTypes.array.isRequired,
|
|
|
|
exportProjectAsZip: PropTypes.func.isRequired,
|
|
|
|
cloneProject: PropTypes.func.isRequired
|
2016-07-01 17:30:40 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
function mapStateToProps(state) {
|
|
|
|
return {
|
|
|
|
user: state.user,
|
|
|
|
sketches: state.sketches
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
function mapDispatchToProps(dispatch) {
|
|
|
|
return bindActionCreators(Object.assign({}, SketchActions, ProjectActions), dispatch);
|
|
|
|
}
|
|
|
|
|
|
|
|
export default connect(mapStateToProps, mapDispatchToProps)(SketchListView);
|