import React from 'react'; import { FormattedMessage } from 'react-intl'; import AvatarUpload from './avatar-upload.jsx'; import TagManager from './tag-manager.jsx'; import { MAX_TITLE_LENGTH } from '../config.js'; export default class NewTopicGroup extends React.PureComponent { constructor(props) { super(props); this.state = { fn: '', // full/formatted name private: '', imageDataUrl: null, tags: [] }; this.handleFnChange = this.handleFnChange.bind(this); this.handlePrivateChange = this.handlePrivateChange.bind(this); this.handleImageChanged = this.handleImageChanged.bind(this); this.handleTagsChanged = this.handleTagsChanged.bind(this); this.handleTagsChanged = this.handleTagsChanged.bind(this); this.handleSubmit = this.handleSubmit.bind(this); } handleFnChange(e) { this.setState({fn: e.target.value}); } handlePrivateChange(e) { this.setState({private: e.target.value}); } handleImageChanged(img) { this.setState({imageDataUrl: img}); } handleTagsChanged(tags) { this.setState({tags: tags}); } handleSubmit(e) { e.preventDefault(); const fn = this.state.fn.trim().substring(0, MAX_TITLE_LENGTH); const comment = this.state.private.trim().substring(0, MAX_TITLE_LENGTH); if (fn) { this.props.onSubmit(fn, this.state.imageDataUrl, comment, this.state.tags); } } render() { var submitClasses = 'blue'; if (this.props.disabled) { submitClasses += ' disabled'; } return (
{ (placeholder) => }
{ (placeholder) => }
{ (title) => }
); } };