import './Talent.scss' import React from 'react' import { Icon } from './Icon' import classNames from 'classnames' import { Controller, Trigger } from './Tooltip' import { TalentTooltip } from './TalentTooltip' interface Props { talent: TalentData specId?: number points?: number disabled?: boolean errors?: string onClick?: (talentId: number) => void onRightClick?: (talentId: number) => void } export class Talent extends React.PureComponent { static whyDidYouRender = true static defaultProps = { points: 0, disabled: false, onClick: () => undefined, onRightClick: () => undefined } render() { const { talent, points, errors, disabled } = this.props const showPoints = !disabled || points > 0 const containerClassNames = classNames('talent', { 'talent--disabled': disabled && points === 0, 'talent--available': !disabled && points < talent.ranks.length, 'talent--disabled-with-points': points >= talent.ranks.length || (points > 0 && disabled) }) const pointsClassNames = classNames('point-label', { 'point-label--enabled': !disabled }) const handleContextMenu = (e) => { if (this.props.onRightClick) this.props.onRightClick(talent.id) e.preventDefault() return false } return (
this.props.onClick(talent.id) : () => {}} onContextMenu={handleContextMenu} >
{showPoints &&
{points}/{talent.ranks.length}
}
{!disabled && points < talent.ranks.length &&

Click to learn

} {points > 0 &&

Right-click to unlearn

}
) } } // ;(Talent as any).whyDidYouRender = true