// import { useReducer } from 'preact/hooks'; // Downgraded from Preact 10 for compat with @pwa/cli import { Component } from 'preact'; import Skill from '@components/Skill'; import Nav from '@components/Nav'; import Footer from '@components/Footer'; import { getHash, setHash } from './hashHandler'; import reducer from './reducer'; import { getLevel } from './selectors'; import style from './index.css'; function contextKiller (event) { event.preventDefault(); return false; } export default class VaultHunter extends Component { constructor (props) { super(props); this.state = { invested: [0, 0, 0], skills: props.skills || {}, }; } componentDidMount () { this.setState(reducer(this.state, { type: 'loadSkills', skills: getHash(this.state.skills), })); } render ({ name = 'Unnamed', discipline = 'Classless', path, skills: initialSkills, }) { const skillChangeListenerFactory = (skillName, treeIndex, treeName, tierIndex) => { return (oldValue, newValue) => { this.setState(reducer(this.state, { type: 'skillChange', skillName, treeIndex, treeName, tierIndex, newValue, oldValue, })); }; }; const resetSkills = () => { setHash(initialSkills); this.setState({ invested: [0, 0, 0], skills: initialSkills || {}, }); }; const trees = Object.keys(this.state.skills).map((treeName, treeIndex) => { return (