Remove reverseRoles

This variable seemed redundant in hindsight, it seemed better to remove it than to worry about where it went in the component.
pull/21833/head
Luke Barnard 2017-11-14 12:02:37 +00:00
parent 88010fa26c
commit d2ef6bffa8
1 changed files with 9 additions and 14 deletions

View File

@ -41,27 +41,21 @@ module.exports = React.createClass({
getInitialState: function() { getInitialState: function() {
return { return {
levelRoleMap: {}, levelRoleMap: {},
reverseRoles: {},
}; };
}, },
componentWillMount: function() { componentWillMount: function() {
// This needs to be done now because levelRoleMap has translated strings // This needs to be done now because levelRoleMap has translated strings
const levelRoleMap = Roles.levelRoleMap(); const levelRoleMap = Roles.levelRoleMap();
const reverseRoles = {};
Object.keys(levelRoleMap).forEach(function(key) {
reverseRoles[levelRoleMap[key]] = key;
});
this.setState({ this.setState({
levelRoleMap, levelRoleMap,
reverseRoles,
custom: levelRoleMap[this.props.value] === undefined, custom: levelRoleMap[this.props.value] === undefined,
}); });
}, },
onSelectChange: function(event) { onSelectChange: function(event) {
this.setState({ custom: event.target.value === "Custom" }); this.setState({ custom: event.target.value === "SELECT_VALUE_CUSTOM" });
if (event.target.value !== "Custom") { if (event.target.value !== "SELECT_VALUE_CUSTOM") {
this.props.onChange(this.getValue()); this.props.onChange(this.getValue());
} }
}, },
@ -79,7 +73,7 @@ module.exports = React.createClass({
getValue: function() { getValue: function() {
let value; let value;
if (this.refs.select) { if (this.refs.select) {
value = this.state.reverseRoles[this.refs.select.value]; value = this.refs.select.value;
if (this.refs.custom) { if (this.refs.custom) {
if (value === undefined) value = parseInt( this.refs.custom.value ); if (value === undefined) value = parseInt( this.refs.custom.value );
} }
@ -101,25 +95,26 @@ module.exports = React.createClass({
let selectValue; let selectValue;
if (this.state.custom) { if (this.state.custom) {
selectValue = "Custom"; selectValue = "SELECT_VALUE_CUSTOM";
} else { } else {
selectValue = this.state.levelRoleMap[this.props.value] || "Custom"; selectValue = this.state.levelRoleMap[selectValue] ?
this.props.value : "SELECT_VALUE_CUSTOM";
} }
let select; let select;
if (this.props.disabled) { if (this.props.disabled) {
select = <span>{ selectValue }</span>; select = <span>{ this.state.levelRoleMap[selectValue] }</span>;
} else { } else {
// Each level must have a definition in this.state.levelRoleMap // Each level must have a definition in this.state.levelRoleMap
const levels = [0, 50, 100]; const levels = [0, 50, 100];
let options = levels.map((level) => { let options = levels.map((level) => {
return { return {
value: this.state.levelRoleMap[level], value: level,
// Give a userDefault (users_default in the power event) of 0 but // Give a userDefault (users_default in the power event) of 0 but
// because level !== undefined, this should never be used. // because level !== undefined, this should never be used.
text: Roles.textualPowerLevel(level, 0), text: Roles.textualPowerLevel(level, 0),
}; };
}); });
options.push({ value: "Custom", text: _t("Custom level") }); options.push({ value: "SELECT_VALUE_CUSTOM", text: _t("Custom level") });
options = options.map((op) => { options = options.map((op) => {
return <option value={op.value} key={op.value}>{ op.text }</option>; return <option value={op.value} key={op.value}>{ op.text }</option>;
}); });