var React = require('react'); var _ = require('lodash'); var cx = require('classnames'); var Markdown = require('marked'); var SpellRenderer = React.createClass({ getDefaultProps: function() { return { spells : [] }; }, //TODO: Add in ritual tag getSubtitle : function(spell){ if(spell.level == 0) return

{spell.school} cantrip

; if(spell.level == 1) return

{spell.level}st-level {spell.school}

; if(spell.level == 2) return

{spell.level}nd-level {spell.school}

; if(spell.level == 3) return

{spell.level}rd-level {spell.school}

; return

{spell.level}th-level {spell.school}

; }, getComponents : function(spell){ var result = []; if(spell.components.v) result.push('V'); if(spell.components.s) result.push('S'); if(spell.components.m) result.push('M ' + spell.components.m); return result.join(', '); }, getHigherLevels : function(spell){ if(!spell.scales) return null; return

At Higher Levels.

; }, getClasses : function(spell){ if(!spell.classes || !spell.classes.length) return null; var classes = _.map(spell.classes, (cls)=>{ return _.capitalize(cls); }).join(', '); return
  • Classes: {classes}
  • }, renderSpell : function(spell){ console.log('rendering', spell); return

    {spell.name}

    {this.getSubtitle(spell)}
    {this.getHigherLevels(spell)}
    }, renderSpells : function(){ return _.map(this.props.spells, (spell)=>{ return this.renderSpell(spell); }) }, render : function(){ return
    {this.renderSpells()}
    } }); module.exports = SpellRenderer;