+ // handle displaying feedback on validity
+ const Tooltip = sdk.getComponent("elements.Tooltip");
+ let feedback;
+ if (this.state.feedback) {
+ feedback =
;
+ }
+
+ return
{prefixContainer}
{fieldInput}
{this.props.label}
+ {feedback}
;
}
}
diff --git a/src/components/views/elements/TagTile.js b/src/components/views/elements/TagTile.js
index f5ee60a2d8..ef9864358b 100644
--- a/src/components/views/elements/TagTile.js
+++ b/src/components/views/elements/TagTile.js
@@ -156,7 +156,7 @@ export default React.createClass({
render: function() {
const BaseAvatar = sdk.getComponent('avatars.BaseAvatar');
const AccessibleButton = sdk.getComponent('elements.AccessibleButton');
- const RoomTooltip = sdk.getComponent('rooms.RoomTooltip');
+ const Tooltip = sdk.getComponent('elements.Tooltip');
const profile = this.state.profile || {};
const name = profile.name || this.props.tag;
const avatarHeight = 40;
@@ -181,7 +181,7 @@ export default React.createClass({
}
const tip = this.state.hover ?
-
:
+
:
;
const contextButton = this.state.hover || this.state.menuDisplayed ?
diff --git a/src/components/views/elements/ToolTipButton.js b/src/components/views/elements/ToolTipButton.js
index b5b2d735ee..239095f196 100644
--- a/src/components/views/elements/ToolTipButton.js
+++ b/src/components/views/elements/ToolTipButton.js
@@ -39,8 +39,8 @@ module.exports = React.createClass({
},
render: function() {
- const RoomTooltip = sdk.getComponent("rooms.RoomTooltip");
- const tip = this.state.hover ?
-
+
{ this.props.label }
);
diff --git a/src/components/views/groups/GroupInviteTile.js b/src/components/views/groups/GroupInviteTile.js
index 44441f4754..8482bce593 100644
--- a/src/components/views/groups/GroupInviteTile.js
+++ b/src/components/views/groups/GroupInviteTile.js
@@ -143,8 +143,8 @@ export default React.createClass({
let tooltip;
if (this.props.collapsed && this.state.hover) {
- const RoomTooltip = sdk.getComponent("rooms.RoomTooltip");
- tooltip =
;
+ const Tooltip = sdk.getComponent("elements.Tooltip");
+ tooltip =
;
}
const classes = classNames('mx_RoomTile mx_RoomTile_highlight', {
diff --git a/src/components/views/messages/MStickerBody.js b/src/components/views/messages/MStickerBody.js
index 55263ef7b7..6a4128dfa7 100644
--- a/src/components/views/messages/MStickerBody.js
+++ b/src/components/views/messages/MStickerBody.js
@@ -44,9 +44,9 @@ export default class MStickerBody extends MImageBody {
if (!content || !content.body || !content.info || !content.info.w) return null;
- const RoomTooltip = sdk.getComponent('rooms.RoomTooltip');
+ const Tooltip = sdk.getComponent('elements.Tooltip');
return
-
+
;
}
diff --git a/src/components/views/rooms/RoomTile.js b/src/components/views/rooms/RoomTile.js
index f9e9d64b9e..4bf160007e 100644
--- a/src/components/views/rooms/RoomTile.js
+++ b/src/components/views/rooms/RoomTile.js
@@ -364,8 +364,8 @@ module.exports = React.createClass({
label =
{ name } ;
}
} else if (this.state.hover) {
- const RoomTooltip = sdk.getComponent("rooms.RoomTooltip");
- tooltip =
;
+ const Tooltip = sdk.getComponent("elements.Tooltip");
+ tooltip =
;
}
//var incomingCallBox;
diff --git a/src/components/views/settings/ChangePassword.js b/src/components/views/settings/ChangePassword.js
index 69b80b03b3..ba708beaf4 100644
--- a/src/components/views/settings/ChangePassword.js
+++ b/src/components/views/settings/ChangePassword.js
@@ -32,6 +32,7 @@ import sessionStore from '../../../stores/SessionStore';
module.exports = React.createClass({
displayName: 'ChangePassword',
+
propTypes: {
onFinished: PropTypes.func,
onError: PropTypes.func,
@@ -73,6 +74,9 @@ module.exports = React.createClass({
return {
phase: this.Phases.Edit,
cachedPassword: null,
+ oldPassword: "",
+ newPassword: "",
+ newPasswordConfirm: "",
};
},
@@ -165,6 +169,9 @@ module.exports = React.createClass({
}).finally(() => {
this.setState({
phase: this.Phases.Edit,
+ oldPassword: "",
+ newPassword: "",
+ newPasswordConfirm: "",
});
}).done();
},
@@ -192,11 +199,29 @@ module.exports = React.createClass({
);
},
+ onChangeOldPassword(ev) {
+ this.setState({
+ oldPassword: ev.target.value,
+ });
+ },
+
+ onChangeNewPassword(ev) {
+ this.setState({
+ newPassword: ev.target.value,
+ });
+ },
+
+ onChangeNewPasswordConfirm(ev) {
+ this.setState({
+ newPasswordConfirm: ev.target.value,
+ });
+ },
+
onClickChange: function(ev) {
ev.preventDefault();
- const oldPassword = this.state.cachedPassword || this.refs.old_input.value;
- const newPassword = this.refs.new_input.value;
- const confirmPassword = this.refs.confirm_input.value;
+ const oldPassword = this.state.cachedPassword || this.state.oldPassword;
+ const newPassword = this.state.newPassword;
+ const confirmPassword = this.state.newPasswordConfirm;
const err = this.props.onCheckPassword(
oldPassword, newPassword, confirmPassword,
);
@@ -217,7 +242,12 @@ module.exports = React.createClass({
if (!this.state.cachedPassword) {
currentPassword = (
-
+
);
}
@@ -230,11 +260,21 @@ module.exports = React.createClass({
diff --git a/src/components/views/settings/PhoneNumbers.js b/src/components/views/settings/PhoneNumbers.js
index d85642d346..5d1d9b849f 100644
--- a/src/components/views/settings/PhoneNumbers.js
+++ b/src/components/views/settings/PhoneNumbers.js
@@ -117,6 +117,8 @@ export default class PhoneNumbers extends React.Component {
addTask: null,
continueDisabled: false,
phoneCountry: "",
+ newPhoneNumber: "",
+ newPhoneNumberCode: "",
};
}
@@ -132,14 +134,26 @@ export default class PhoneNumbers extends React.Component {
this.setState({msisdns: this.state.msisdns.filter((e) => e !== address)});
};
+ _onChangeNewPhoneNumber = (e) => {
+ this.setState({
+ newPhoneNumber: e.target.value,
+ });
+ };
+
+ _onChangeNewPhoneNumberCode = (e) => {
+ this.setState({
+ newPhoneNumberCode: e.target.value,
+ });
+ };
+
_onAddClick = (e) => {
e.stopPropagation();
e.preventDefault();
- if (!this.refs.newPhoneNumber) return;
+ if (!this.state.newPhoneNumber) return;
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
- const phoneNumber = this.refs.newPhoneNumber.value;
+ const phoneNumber = this.state.newPhoneNumber;
const phoneCountry = this.state.phoneCountry;
const task = new AddThreepid();
@@ -162,7 +176,7 @@ export default class PhoneNumbers extends React.Component {
e.preventDefault();
this.setState({continueDisabled: true});
- const token = this.refs.newPhoneNumberCode.value;
+ const token = this.state.newPhoneNumberCode;
this.state.addTask.haveMsisdnToken(token).then(() => {
this.setState({
msisdns: [...this.state.msisdns, {address: this.state.verifyMsisdn, medium: "msisdn"}],
@@ -171,8 +185,9 @@ export default class PhoneNumbers extends React.Component {
verifying: false,
verifyMsisdn: "",
verifyError: null,
+ newPhoneNumber: "",
+ newPhoneNumberCode: "",
});
- this.refs.newPhoneNumber.value = "";
}).catch((err) => {
this.setState({continueDisabled: false});
if (err.errcode !== 'M_THREEPID_AUTH_FAILED') {
@@ -205,22 +220,28 @@ export default class PhoneNumbers extends React.Component {
if (this.state.verifying) {
const msisdn = this.state.verifyMsisdn;
addVerifySection = (
-