2018-01-04 23:14:03 +01:00
import React from 'react' ;
2018-01-11 20:41:12 +01:00
import { updateMetadata } from '../actions/index' ;
2018-01-09 02:46:17 +01:00
import { connect } from 'react-redux' ;
2018-01-13 00:02:42 +01:00
import PropTypes from 'prop-types' ;
2018-01-04 23:14:03 +01:00
class TitleInput extends React . Component {
constructor ( props ) {
super ( props ) ;
this . handleInput = this . handleInput . bind ( this ) ;
}
handleInput ( e ) {
e . preventDefault ( ) ;
const name = e . target . name ;
const value = e . target . value ;
2018-01-09 02:46:17 +01:00
this . props . onMetadataChange ( name , value ) ;
2018-01-04 23:14:03 +01:00
}
render ( ) {
return (
< input type = "text" id = "publish-title" className = "input-text text--large input-text--full-width" name = "title" placeholder = "Give your post a title..." onChange = { this . handleInput } value = { this . props . title } / >
) ;
}
}
2018-01-09 02:46:17 +01:00
const mapStateToProps = state => {
return {
title : state . metadata . title ,
} ;
} ;
const mapDispatchToProps = dispatch => {
return {
onMetadataChange : ( name , value ) => {
dispatch ( updateMetadata ( name , value ) ) ;
} ,
} ;
}
2018-01-13 00:02:42 +01:00
TitleInput . propTypes = {
title : PropTypes . string . isRequired ,
onMetadataChange : PropTypes . func . isRequired ,
} ;
2018-01-09 02:46:17 +01:00
export default connect ( mapStateToProps , mapDispatchToProps ) ( TitleInput ) ;