redux-app-examples
Version:
Examples of redux-app with Angular and React.
64 lines (51 loc) • 1.65 kB
text/typescript
import { action, ignoreState, sequence } from 'redux-app';
import { Gladiator } from '../../model';
import { GladiatorsList, SelectedGladiator } from '../partials';
import { Route, Router } from '../router';
export class MainPage {
//
// public props
//
public gladiatorsList: GladiatorsList;
public get topGladiators(): Gladiator[] {
var top = this.gladiatorsList.items.slice();
top.sort((a, b) => b.wins - a.wins);
return top.slice(0, 3);
}
//
// private props
//
private selectedGladiator: SelectedGladiator;
private router: Router;
constructor(list: GladiatorsList, selectedGladiator: SelectedGladiator, router: Router) {
this.gladiatorsList = list;
this.selectedGladiator = selectedGladiator;
this.router = router;
}
//
// methods
//
public goToGladiatorPage(gladiator: Gladiator) {
this.selectedGladiator.setValue(gladiator);
this.router.navigateTo(Route.GladiatorPage);
}
public toTheArena() {
this.router.navigateTo(Route.ArenaPage);
}
public newGladiator(): void {
const newGladiator = new Gladiator();
this.gladiatorsList.add(newGladiator);
this.goToGladiatorPage(newGladiator);
}
public generateGladiators(): void {
const newGladiators = [];
for (let i = 0; i < 5; i++) {
newGladiators.push(new Gladiator());
}
this.gladiatorsList.add(newGladiators);
}
}