You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.2 KiB
44 lines
1.2 KiB
require('../../sass/welcome/welcome.scss');
|
|
|
|
import { Component } from 'react';
|
|
import { connect } from 'react-redux';
|
|
|
|
import WelcomeCtrl from '../../controllers/welcome/welcome.controller';
|
|
import HofRow from '../../components/welcome/hof-row.component';
|
|
let listener;
|
|
|
|
export class Welcome extends Component {
|
|
componentDidMount() {
|
|
WelcomeCtrl.setDispatch(this.props.dispatch);
|
|
WelcomeCtrl.updateFromLocalStorage();
|
|
|
|
listener = WelcomeCtrl.keydown.bind(WelcomeCtrl);
|
|
window.addEventListener('keydown', listener);
|
|
};
|
|
|
|
componentWillUnmount() {
|
|
window.removeEventListener('keydown', listener);
|
|
};
|
|
|
|
render() {
|
|
const entries = [];
|
|
this.props.scores.map(function(v, i) {
|
|
entries.push(<HofRow initials={v.initials} score={v.score} rank={i + 1} key={i} />);
|
|
});
|
|
|
|
return (
|
|
<div className='welcome'>
|
|
<img src="res/title.png" />
|
|
<div className='line blink'>Press Spacebar for new game</div>
|
|
<hr />
|
|
{entries}
|
|
</div>
|
|
);
|
|
};
|
|
};
|
|
|
|
const select = (state) => {
|
|
return state.welcome;
|
|
};
|
|
|
|
export default connect(select)(Welcome);
|
|
|