redux-app-examples
Version:
Examples of redux-app with Angular and React.
55 lines (45 loc) • 1.43 kB
text/typescript
import { action, sequence } from 'redux-app';
import { Gladiator } from '../../model';
import { GladiatorsList, SelectedGladiator } from '../partials';
import { Route, Router } from '../router';
export class MainPageState {
//
// properties
//
public get topGladiators(): Gladiator[] {
var top = this.gladiatorsList.items.slice();
top.sort((a, b) => b.wins - a.wins);
return top.slice(0, 3);
}
constructor(
public readonly gladiatorsList: GladiatorsList,
private readonly selectedGladiator: SelectedGladiator,
private readonly 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);
}
}