Merge pull request #1746 from matrix-org/luke/fix-room-settings-resets
Store component state for editorspull/21833/head
						commit
						46b8fb9a19
					
				|  | @ -29,13 +29,21 @@ module.exports = React.createClass({ | |||
|         room: PropTypes.object.isRequired, | ||||
|     }, | ||||
| 
 | ||||
|     getInitialState: function() { | ||||
|         return { | ||||
|             name: null, | ||||
|         }; | ||||
|     }, | ||||
| 
 | ||||
|     componentWillMount: function() { | ||||
|         const room = this.props.room; | ||||
|         const name = room.currentState.getStateEvents('m.room.name', ''); | ||||
|         const myId = MatrixClientPeg.get().credentials.userId; | ||||
|         const defaultName = room.getDefaultRoomName(myId); | ||||
| 
 | ||||
|         this._initialName = name ? name.getContent().name : ''; | ||||
|         this.setState({ | ||||
|             name: name ? name.getContent().name : '', | ||||
|         }); | ||||
| 
 | ||||
|         this._placeholderName = _t("Unnamed Room"); | ||||
|         if (defaultName && defaultName !== 'Empty room') { // default name from JS SDK, needs no translation as we don't ever show it.
 | ||||
|  | @ -44,7 +52,13 @@ module.exports = React.createClass({ | |||
|     }, | ||||
| 
 | ||||
|     getRoomName: function() { | ||||
|         return this.refs.editor.getValue(); | ||||
|         return this.state.name; | ||||
|     }, | ||||
| 
 | ||||
|     _onValueChanged: function(value, shouldSubmit) { | ||||
|         this.setState({ | ||||
|             name: value, | ||||
|         }); | ||||
|     }, | ||||
| 
 | ||||
|     render: function() { | ||||
|  | @ -57,7 +71,8 @@ module.exports = React.createClass({ | |||
|                          placeholderClassName="mx_RoomHeader_placeholder" | ||||
|                          placeholder={this._placeholderName} | ||||
|                          blurToCancel={false} | ||||
|                          initialValue={this._initialName} | ||||
|                          initialValue={this.state.name} | ||||
|                          onValueChanged={this._onValueChanged} | ||||
|                          dir="auto" /> | ||||
|                 </div> | ||||
|         ); | ||||
|  |  | |||
|  | @ -28,26 +28,41 @@ module.exports = React.createClass({ | |||
|         room: PropTypes.object.isRequired, | ||||
|     }, | ||||
| 
 | ||||
|     getInitialState: function() { | ||||
|         return { | ||||
|             topic: null, | ||||
|         }; | ||||
|     }, | ||||
| 
 | ||||
|     componentWillMount: function() { | ||||
|         const room = this.props.room; | ||||
|         const topic = room.currentState.getStateEvents('m.room.topic', ''); | ||||
|         this._initialTopic = topic ? topic.getContent().topic : ''; | ||||
|         this.setState({ | ||||
|             topic: topic ? topic.getContent().topic : '', | ||||
|         }); | ||||
|     }, | ||||
| 
 | ||||
|     getTopic: function() { | ||||
|         return this.refs.editor.getValue(); | ||||
|         return this.state.topic; | ||||
|     }, | ||||
| 
 | ||||
|     _onValueChanged: function(value) { | ||||
|         this.setState({ | ||||
|             topic: value, | ||||
|         }); | ||||
|     }, | ||||
| 
 | ||||
|     render: function() { | ||||
|         const EditableText = sdk.getComponent("elements.EditableText"); | ||||
| 
 | ||||
|         return ( | ||||
|                 <EditableText ref="editor" | ||||
|                 <EditableText | ||||
|                      className="mx_RoomHeader_topic mx_RoomHeader_editable" | ||||
|                      placeholderClassName="mx_RoomHeader_placeholder" | ||||
|                      placeholder={_t("Add a topic")} | ||||
|                      blurToCancel={false} | ||||
|                      initialValue={this._initialTopic} | ||||
|                      initialValue={this.state.topic} | ||||
|                      onValueChanged={this._onValueChanged} | ||||
|                      dir="auto" /> | ||||
|         ); | ||||
|     }, | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 David Baker
						David Baker