var React = require('react'); var ReactDOM = require('react-dom'); var Remarkable = require('remarkable'); var DatePicker = require('react-datepicker'); require('react-datepicker/dist/react-datepicker.css'); var Bootstrap = require('react-bootstrap'); var moment = require('moment'); var $ = require('jquery'); var TodoForm = React.createClass({ getInitialState: function() { return {title: '', text: '', deadline: moment(), priority: '1'}; }, handleTitleChange: function(e) { this.setState({title: e.target.value}); }, handleDateChange: function(date) { this.setState({deadline: date}); }, handlePriorityChange: function(e) { this.setState({priority: e.target.value}); }, handleTextChange: function(e) { this.setState({text: e.target.value}); }, handleSubmit: function(e) { e.preventDefault(); var title = this.state.title.trim(); var text = this.state.text.trim(); var priority = this.state.priority; var deadline = this.state.deadline._d.toLocaleDateString(); console.log(deadline); if (!title || !text || !deadline) { return; } this.props.onCommentSubmit({a: 'add', title: title, text: text, deadline: deadline, priority: priority}); this.setState({title: '', text: '', deadline: moment(), priority: '1'}); }, render: function() { return (


); } }); var LoginForm = React.createClass({ render: function() { return ( Log In ); } }); var Item = React.createClass({ rawMarkup: function() { var md = new Remarkable(); var rawMarkup = md.render(this.props.children.toString()); return { __html: rawMarkup }; }, render: function() { var md = new Remarkable(); return (

{this.props.title}

); } }); var TodoList = React.createClass({ render: function() { console.log(this.props.list); var itemList = this.props.list.map(function(item) { return ( {item.description} ); }); return (
{itemList}
); } }); var App = React.createClass({ getInitialState: function() { return {list: []}; }, componentDidMount: function() { $.ajax({ url: this.props.url, dataType: 'json', type: 'GET', success: function(data) { this.setState({list: data.list}); }.bind(this), error: function(xhr, status, err) { console.error(this.props.url, status, err.toString()); }.bind(this) }); }, handleCommentSubmit: function(comment) { $.ajax({ url: this.props.url, dataType: 'json', cache: false, type: 'POST', data: comment, success: function(data) { if (data.result != 0) { console.log("Error in API: " + data.result); } this.setState({list: data.list}); }.bind(this), error: function(xhr, status, err) { console.error(this.props.url, status, err.toString()); }.bind(this) }); }, render: function() { return (

Tankernn TODO list

); } }); ReactDOM.render(, document.getElementById('content'));