Make Presets stateless

This commit is contained in:
Erik Johnston 2015-07-16 17:24:33 +01:00
parent aa1b763518
commit 68d60aadd1
4 changed files with 6 additions and 28 deletions

View File

@ -25,12 +25,12 @@ module.exports = React.createClass({
mixins: [PresetsController],
onValueChanged: function(ev) {
this.setState({preset: ev.target.value}, this.props.onChange);
this.props.onChange(ev.target.value)
},
render: function() {
return (
<select className="mx_Presets" onChange={this.onValueChanged} value={this.state.preset}>
<select className="mx_Presets" onChange={this.onValueChanged} value={this.props.preset}>
<option value={this.Presets.PrivateChat}>Private Chat</option>
<option value={this.Presets.PublicChat}>Public Chat</option>
<option value={this.Presets.Custom}>Custom</option>

View File

@ -58,8 +58,7 @@ module.exports = React.createClass({
return this.refs.user_selector.getUserIds();
},
onPresetChanged: function() {
var preset = this.refs.presets.getPreset();
onPresetChanged: function(preset) {
switch (preset) {
case PresetValues.PrivateChat:
this.setState({

View File

@ -27,7 +27,6 @@ var Presets = {
module.exports = {
propTypes: {
onChange: React.PropTypes.func,
default_preset: React.PropTypes.string,
preset: React.PropTypes.string
},
@ -36,25 +35,6 @@ module.exports = {
getDefaultProps: function() {
return {
onChange: function() {},
default_preset: Presets.PrivateChat,
};
},
getInitialState: function() {
return {
preset: this.props.preset || this.props.default_preset,
}
},
componentWillReceiveProps: function(new_props) {
if (new_props.preset) {
this.setState({
preset: new_props.preset
});
}
},
getPreset: function() {
return this.state.preset;
},
};

View File

@ -62,10 +62,9 @@ module.exports = {
options.topic = this.state.topic;
}
var preset = this.getPreset();
if (preset) {
if (preset != PresetValues.Custom) {
options.preset = preset;
if (this.state.preset) {
if (this.state.preset != PresetValues.Custom) {
options.preset = this.state.preset;
} else {
options.initial_state = [
{