Add method to Modal to create dialog with instantiated React elements as well as Classes.
This commit is contained in:
parent
05f7a3b4d1
commit
0791cac572
3 changed files with 28 additions and 9 deletions
23
src/Modal.js
23
src/Modal.js
|
@ -34,6 +34,29 @@ module.exports = {
|
||||||
return container;
|
return container;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
createDialogWithElement: function(element, props) {
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
var closeDialog = function() {
|
||||||
|
React.unmountComponentAtNode(self.getOrCreateContainer());
|
||||||
|
|
||||||
|
if (props && props.onFinished) props.onFinished.apply(null, arguments);
|
||||||
|
};
|
||||||
|
|
||||||
|
var dialog = (
|
||||||
|
<div className="mx_Dialog_wrapper">
|
||||||
|
<div className="mx_Dialog">
|
||||||
|
{element}
|
||||||
|
</div>
|
||||||
|
<div className="mx_Dialog_background" onClick={closeDialog}></div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
|
||||||
|
React.render(dialog, this.getOrCreateContainer());
|
||||||
|
|
||||||
|
return {close: closeDialog};
|
||||||
|
},
|
||||||
|
|
||||||
createDialog: function (Element, props) {
|
createDialog: function (Element, props) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,6 @@ var MatrixClientPeg = require("../../MatrixClientPeg");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
propTypes: {
|
propTypes: {
|
||||||
onFinished: React.PropTypes.func,
|
|
||||||
initialAvatarUrl: React.PropTypes.string.isRequired,
|
initialAvatarUrl: React.PropTypes.string.isRequired,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -29,12 +28,6 @@ module.exports = {
|
||||||
Error: "error",
|
Error: "error",
|
||||||
},
|
},
|
||||||
|
|
||||||
getDefaultProps: function() {
|
|
||||||
return {
|
|
||||||
onFinished: function() {},
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
getInitialState: function() {
|
getInitialState: function() {
|
||||||
return {
|
return {
|
||||||
avatarUrl: this.props.initialAvatarUrl,
|
avatarUrl: this.props.initialAvatarUrl,
|
||||||
|
|
|
@ -39,7 +39,7 @@ module.exports = {
|
||||||
var self = this;
|
var self = this;
|
||||||
cli.getProfileInfo(cli.credentials.userId).done(function(result) {
|
cli.getProfileInfo(cli.credentials.userId).done(function(result) {
|
||||||
self.setState({
|
self.setState({
|
||||||
displayname: result.displayname,
|
displayName: result.displayname,
|
||||||
busy: false
|
busy: false
|
||||||
});
|
});
|
||||||
}, function(error) {
|
}, function(error) {
|
||||||
|
@ -60,7 +60,10 @@ module.exports = {
|
||||||
|
|
||||||
var self = this;
|
var self = this;
|
||||||
MatrixClientPeg.get().setDisplayName(new_displayname).then(function() {
|
MatrixClientPeg.get().setDisplayName(new_displayname).then(function() {
|
||||||
self.setState({busy: false});
|
self.setState({
|
||||||
|
busy: false,
|
||||||
|
displayName: new_displayname
|
||||||
|
});
|
||||||
}, function(error) {
|
}, function(error) {
|
||||||
self.setState({
|
self.setState({
|
||||||
busy: false,
|
busy: false,
|
||||||
|
|
Loading…
Reference in a new issue