diff --git a/res/css/views/settings/_ProfileSettings.scss b/res/css/views/settings/_ProfileSettings.scss index 732cbedf02..4cbcb8e708 100644 --- a/res/css/views/settings/_ProfileSettings.scss +++ b/res/css/views/settings/_ProfileSettings.scss @@ -14,6 +14,12 @@ See the License for the specific language governing permissions and limitations under the License. */ +.mx_ProfileSettings_controls_topic { + & > textarea { + resize: vertical; + } +} + .mx_ProfileSettings_profile { display: flex; } diff --git a/src/components/views/elements/EditableItemList.js b/src/components/views/elements/EditableItemList.js index 34e53906a2..5a07a400d7 100644 --- a/src/components/views/elements/EditableItemList.js +++ b/src/components/views/elements/EditableItemList.js @@ -124,7 +124,7 @@ export default class EditableItemList extends React.Component { - + {_t("Add")} diff --git a/src/components/views/room_settings/RoomProfileSettings.js b/src/components/views/room_settings/RoomProfileSettings.js index ca09c3093a..c76c0823e4 100644 --- a/src/components/views/room_settings/RoomProfileSettings.js +++ b/src/components/views/room_settings/RoomProfileSettings.js @@ -120,17 +120,21 @@ export default class RoomProfileSettings extends React.Component { }; _onDisplayNameChanged = (e) => { - this.setState({ - displayName: e.target.value, - enableProfileSave: true, - }); + this.setState({displayName: e.target.value}); + if (this.state.originalDisplayName === e.target.value) { + this.setState({enableProfileSave: false}); + } else { + this.setState({enableProfileSave: true}); + } }; _onTopicChanged = (e) => { - this.setState({ - topic: e.target.value, - enableProfileSave: true, - }); + this.setState({topic: e.target.value}); + if (this.state.originalTopic === e.target.value) { + this.setState({enableProfileSave: false}); + } else { + this.setState({enableProfileSave: true}); + } }; _onAvatarChanged = (e) => { @@ -158,31 +162,10 @@ export default class RoomProfileSettings extends React.Component { render() { const AccessibleButton = sdk.getComponent('elements.AccessibleButton'); const AvatarSetting = sdk.getComponent('settings.AvatarSetting'); - return ( -
- -
-
- - -
- -
+ + let profileSettingsButtons; + if (this.state.canSetTopic && this.state.canSetName) { + profileSettingsButtons = (
+ ); + } + + return ( + + +
+
+ + +
+ +
+ { profileSettingsButtons }
); } diff --git a/src/components/views/settings/AvatarSetting.js b/src/components/views/settings/AvatarSetting.js index 487c752c38..93b982467a 100644 --- a/src/components/views/settings/AvatarSetting.js +++ b/src/components/views/settings/AvatarSetting.js @@ -65,7 +65,7 @@ const AvatarSetting = ({avatarUrl, avatarAltText, avatarName, uploadAvatar, remo const avatarClasses = classNames({ "mx_AvatarSetting_avatar": true, - "mx_AvatarSetting_avatar_hovering": isHovering, + "mx_AvatarSetting_avatar_hovering": isHovering && uploadAvatar, }); return
{avatarElement}