From 16846c36fd8d878f4465bca4553ce465dd3221c0 Mon Sep 17 00:00:00 2001
From: Erik Johnston <erikj@matrix.org>
Date: Tue, 21 Jul 2015 14:46:42 +0100
Subject: [PATCH] Handle default named rooms when editing room names

---
 skins/base/views/molecules/RoomHeader.js | 8 +++++---
 skins/base/views/organisms/RoomView.js   | 2 +-
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/skins/base/views/molecules/RoomHeader.js b/skins/base/views/molecules/RoomHeader.js
index fdf4d7e5..e08f2651 100644
--- a/skins/base/views/molecules/RoomHeader.js
+++ b/skins/base/views/molecules/RoomHeader.js
@@ -28,7 +28,7 @@ module.exports = React.createClass({
     mixins: [RoomHeaderController],
 
     onNameChange: function(new_name) {
-        if (this.props.room.name != new_name) {
+        if (this.props.room.name != new_name && new_name) {
             MatrixClientPeg.get().setRoomName(this.props.room.roomId, new_name);
         }
     },
@@ -69,8 +69,10 @@ module.exports = React.createClass({
             var topic_el = null;
             var save_button = null;
             var settings_button = null;
+            var actual_name = this.props.room.currentState.getStateEvents('m.room.name', '');
+            if (actual_name) actual_name = actual_name.getContent().name;
             if (this.props.editing) {
-                name = <input type="text" defaultValue={this.props.room.name} ref="name_edit"/>;
+                name = <input type="text" defaultValue={actual_name} placeHolder="Name" ref="name_edit"/>;
                 // if (topic) topic_el = <div className="mx_RoomHeader_topic"><textarea>{ topic.getContent().topic }</textarea></div>
                 save_button = (
                     <div className="mx_RoomHeader_button"onClick={this.props.onSaveClick}>
@@ -78,7 +80,7 @@ module.exports = React.createClass({
                     </div>
                 );
             } else {
-                name = <EditableText initialValue={this.props.room.name} onValueChanged={this.onNameChange} />;
+                name = <EditableText label={this.props.room.name} initialValue={actual_name} placeHolder="Name" onValueChanged={this.onNameChange} />;
                 if (topic) topic_el = <div className="mx_RoomHeader_topic">{ topic.getContent().topic }</div>;
                 settings_button = (
                     <div className="mx_RoomHeader_button" onClick={this.props.onSettingsClick}>
diff --git a/skins/base/views/organisms/RoomView.js b/skins/base/views/organisms/RoomView.js
index 124f74cd..ffd7bad5 100644
--- a/skins/base/views/organisms/RoomView.js
+++ b/skins/base/views/organisms/RoomView.js
@@ -83,7 +83,7 @@ module.exports = React.createClass({
 
         var deferreds = [];
 
-        if (old_name != new_name && new_name != undefined) {
+        if (old_name != new_name && new_name != undefined && new_name) {
             deferreds.push(
                 MatrixClientPeg.get().setRoomName(this.state.room.roomId, new_name)
             );