import React from 'react' import { Helmet } from 'react-helmet' import { connect } from 'react-redux' import { deleteData, updateData } from '../../../actions/index' import { history } from '../../../index' class AdminDetail extends React.Component { constructor(props, context) { super(props, context) this.state = { isInEdition: false, } } render() { const { message, onDataUpdate, onDataDelete, results, target, } = this.props const { isInEdition } = this.state const title = target.charAt(0).toUpperCase() + target.slice(1) return (
FitTrackee - Admin

Administration - {title}

{message ? ( {message} ) : ( results.length === 1 && (
event.preventDefault()} > { Object.keys(results[0]) .filter(key => key.charAt(0) !== '_') .map(key => (
)) } {isInEdition ? (
{ onDataUpdate(event, target) this.setState({ isInEdition: false }) } } value="Submit" /> { event.target.form.reset() this.setState({ isInEdition: false }) }} value="Cancel" />
) : (
this.setState({ isInEdition: true })} value="Edit" /> onDataDelete(event, target)} title={results[0]._can_be_deleted ? '' : 'Can\'t be deleted, associated data exist'} value="Delete" /> history.push(`/admin/${target}`)} value="Back to the list" />
)}
) )}
) } } export default connect( state => ({ message: state.message, }), dispatch => ({ onDataDelete: (e, target) => { const id = e.target.form.id.value dispatch(deleteData(target, id)) }, onDataUpdate: (e, target) => { const data = [].slice .call(e.target.form.elements) .reduce(function(map, obj) { if (obj.name) { map[obj.name] = obj.value } return map }, {}) dispatch(updateData(target, data)) }, }) )(AdminDetail)