diff --git a/src/app/components/ModificationsMenu.jsx b/src/app/components/ModificationsMenu.jsx index adc6a41b..2f06005f 100644 --- a/src/app/components/ModificationsMenu.jsx +++ b/src/app/components/ModificationsMenu.jsx @@ -1,6 +1,6 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { chain, keys } from 'lodash'; +import { chain, flatMap, keys } from 'lodash'; import TranslatedComponent from './TranslatedComponent'; import { stopCtxPropagation } from '../utils/UtilityFunctions'; import cn from 'classnames'; @@ -54,44 +54,37 @@ export default class ModificationsMenu extends TranslatedComponent { const { language, tooltip, termtip } = this.context; const { translate } = language; - const blueprints = []; - for (const blueprint of m.getApplicableBlueprints()) { + const blueprints = m.getApplicableBlueprints().map(blueprint => { const info = getBlueprintInfo(blueprint); - let blueprintGrades = []; - for (let grade in info.features) { + let blueprintGrades = keys(info.features).map(grade => { // Grade is a string in the JSON so make it a number grade = Number(grade); const active = m.getBlueprint() === blueprint && m.getBlueprintGrade() === grade; const key = blueprint + ':' + grade; - const tooltipContent = blueprintTooltip(language, m, blueprint, grade); - blueprintGrades.push( -
  • { - m.setBlueprint(blueprint, grade, 1); - this.setState({ - blueprintMenuOpened: false, - specialMenuOpened: true, - }); - }} - ref={active ? (ref) => { this.selectedModRef = ref; } : undefined} - >{grade}
  • - ); - } + return
  • { + m.setBlueprint(blueprint, grade, 1); + this.setState({ + blueprintMenuOpened: false, + specialMenuOpened: true, + }); + }} + ref={active ? (ref) => { this.selectedModRef = ref; } : undefined} + >{grade}
  • ; + }); - blueprints.push( - [ -
    - {translate(blueprint)} -
    , - - ], - ); - } + return [ +
    + {translate(blueprint)} +
    , + + ]; + }); - return [].concat(...blueprints); + return flatMap(blueprints); } /** @@ -248,6 +241,7 @@ export default class ModificationsMenu extends TranslatedComponent { } = this.state; const appliedBlueprint = m.getBlueprint(); + const appliedGrade = m.getBlueprintGrade(); const appliedExperimental = m.getExperimental(); let renderComponents = []; @@ -261,16 +255,16 @@ export default class ModificationsMenu extends TranslatedComponent { default: // Since the first case didn't apply, there is a blueprint applied so // we render the modifications - // let blueprintTt = blueprintTooltip(translate, m.blueprint.grades[m.blueprint.grade]); + let blueprintTt = blueprintTooltip(language, m, appliedBlueprint, appliedGrade); renderComponents.push(
    - {translate(appliedBlueprint)} {translate('grade')} {m.getBlueprintGrade()} + {translate(appliedBlueprint)} {translate('grade')} {appliedGrade}
    );