hometown/app/javascript/mastodon/features/home_timeline/components/setting_text.js

39 lines
866 B
JavaScript
Raw Normal View History

import React from 'react';
import PropTypes from 'prop-types';
2017-01-10 16:25:10 +00:00
import ImmutablePropTypes from 'react-immutable-proptypes';
class SettingText extends React.PureComponent {
2017-01-10 16:25:10 +00:00
constructor (props, context) {
super(props, context);
this.handleChange = this.handleChange.bind(this);
}
2017-01-10 16:25:10 +00:00
handleChange (e) {
this.props.onChange(this.props.settingKey, e.target.value)
}
2017-01-10 16:25:10 +00:00
render () {
const { settings, settingKey, label } = this.props;
return (
<input
className='setting-text'
value={settings.getIn(settingKey)}
onChange={this.handleChange}
placeholder={label}
/>
);
}
}
SettingText.propTypes = {
settings: ImmutablePropTypes.map.isRequired,
settingKey: PropTypes.array.isRequired,
label: PropTypes.string.isRequired,
onChange: PropTypes.func.isRequired
};
2017-01-10 16:25:10 +00:00
export default SettingText;