UNPKG

react-cordova-boilerplate

Version:

TodoMVC example for react with development tools to build a cordova application

67 lines (62 loc) 2.38 kB
import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; import * as TodoActions from 'src/actions/todo-actions.js'; import * as CredentialsActions from 'src/actions/credentials-actions.js'; import auth from 'src/core/auth.js'; import Header from 'src/components/header.jsx'; import MainSection from 'src/components/main-section.jsx'; import todoStyle from 'src/style/todo-style.scss'; import TodoItem from 'src/components/todo-item.jsx'; class TodoAppComponent extends Component { handleLogout = this.handleLogout.bind(this); handleLogout() { auth.logout(); this.props.credentialsActions.clearCredentials(); } render() { const { todos, todoActions } = this.props; return ( <div> <div style={{ display: 'flex', justifyContent: 'flex-end' }}> <button style={{ marginTop: '5px' }} onClick={this.handleLogout}>Logout</button> </div> <section className={todoStyle.todoapp}> <div> <Header {...todoActions} /> <MainSection todos={todos} {...todoActions} /> </div> </section> </div> ); } } if (__DEV__) { // Not needed or used in minified mode TodoAppComponent.propTypes = { todos: PropTypes.arrayOf(TodoItem.propTypes.todo).isRequired, credentialsActions: PropTypes.shape({ clearCredentials: PropTypes.func.isRequired, checkCredentials: PropTypes.func.isRequired, checkCredentialsSucess: PropTypes.func.isRequired, checkCredentialsFailure: PropTypes.func.isRequired, addCredentials: PropTypes.func.isRequired, addCredentialsSucess: PropTypes.func.isRequired, addCredentialsFailure: PropTypes.func.isRequired }).isRequired, todoActions: PropTypes.shape({ addTodo: PropTypes.func.isRequired, deleteTodo: PropTypes.func.isRequired, editTodo: PropTypes.func.isRequired, markTodo: PropTypes.func.isRequired, markAll: PropTypes.func.isRequired, clearMarked: PropTypes.func.isRequired }).isRequired }; } const TodoApp = connect(state => ({ todos: state.todos }), dispatch => ({ credentialsActions: bindActionCreators(CredentialsActions, dispatch), todoActions: bindActionCreators(TodoActions, dispatch) }))(TodoAppComponent); export default TodoApp;