add link to replay page
This commit is contained in:
parent
d7daa1da05
commit
42012ba578
|
@ -18,7 +18,7 @@ function App() {
|
||||||
<Navbar className={classes.navBar} gameName={""}/>
|
<Navbar className={classes.navBar} gameName={""}/>
|
||||||
<div style={{marginTop: '75px'}}>
|
<div style={{marginTop: '75px'}}>
|
||||||
<Route exact path="/">
|
<Route exact path="/">
|
||||||
<Redirect to="/leaderboard" />
|
<Redirect to="/leaderboard?type=game&name=leduc-holdem" />
|
||||||
</Route>
|
</Route>
|
||||||
<Route path="/leaderboard" component={LeaderBoard} />
|
<Route path="/leaderboard" component={LeaderBoard} />
|
||||||
<Route path="/replay/doudizhu" component={DoudizhuGameView} />
|
<Route path="/replay/doudizhu" component={DoudizhuGameView} />
|
||||||
|
|
|
@ -23,6 +23,7 @@ import DialogContent from "@material-ui/core/DialogContent";
|
||||||
import DialogContentText from "@material-ui/core/DialogContentText";
|
import DialogContentText from "@material-ui/core/DialogContentText";
|
||||||
import DialogActions from "@material-ui/core/DialogActions";
|
import DialogActions from "@material-ui/core/DialogActions";
|
||||||
import Dialog from "@material-ui/core/Dialog";
|
import Dialog from "@material-ui/core/Dialog";
|
||||||
|
import qs from "query-string";
|
||||||
|
|
||||||
class DoudizhuGameView extends React.Component {
|
class DoudizhuGameView extends React.Component {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
|
@ -174,12 +175,12 @@ class DoudizhuGameView extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
startReplay() {
|
startReplay() {
|
||||||
// for test use
|
const { name, agent0, agent1, index } = qs.parse(window.location.search);
|
||||||
const replayId = 0;
|
const requestUrl = `${apiUrl}/tournament/replay?name=${name}&agent0=${agent0}&agent1=${agent1}&index=${index}`;
|
||||||
|
|
||||||
// start full screen loading
|
// start full screen loading
|
||||||
this.setState({fullScreenLoading: true});
|
this.setState({fullScreenLoading: true});
|
||||||
axios.get(`${apiUrl}/replay/doudizhu/${replayId}`)
|
axios.get(requestUrl)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
res = res.data;
|
res = res.data;
|
||||||
// init replay info
|
// init replay info
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
|
import qs from 'query-string';
|
||||||
import '../../assets/gameview.scss';
|
import '../../assets/gameview.scss';
|
||||||
import {LeducHoldemGameBoard} from '../../components/GameBoard';
|
import {LeducHoldemGameBoard} from '../../components/GameBoard';
|
||||||
import Navbar from '../../components/Navbar';
|
import Navbar from '../../components/Navbar';
|
||||||
|
@ -32,7 +33,6 @@ class LeducHoldemGameView extends React.Component {
|
||||||
this.initConsiderationTime = 2000;
|
this.initConsiderationTime = 2000;
|
||||||
this.considerationTimeDeduction = 100;
|
this.considerationTimeDeduction = 100;
|
||||||
this.gameStateTimeout = null;
|
this.gameStateTimeout = null;
|
||||||
this.apiUrl = apiUrl;
|
|
||||||
this.moveHistory = [];
|
this.moveHistory = [];
|
||||||
this.moveHistoryTotalLength = null;
|
this.moveHistoryTotalLength = null;
|
||||||
this.gameStateHistory = [[],[]];
|
this.gameStateHistory = [[],[]];
|
||||||
|
@ -195,12 +195,12 @@ class LeducHoldemGameView extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
startReplay() {
|
startReplay() {
|
||||||
// for test use
|
const { name, agent0, agent1, index } = qs.parse(window.location.search);
|
||||||
const testUrl = '/tournament/replay?name=leduc-holdem&agent0=leduc-holdem-random&agent1=leduc-holdem-cfr&index=1';
|
const requestUrl = `${apiUrl}/tournament/replay?name=${name}&agent0=${agent0}&agent1=${agent1}&index=${index}`;
|
||||||
|
|
||||||
// start full screen loading
|
// start full screen loading
|
||||||
this.setState({fullScreenLoading: true});
|
this.setState({fullScreenLoading: true});
|
||||||
axios.get(`${this.apiUrl}${testUrl}`)
|
axios.get(requestUrl)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
res = res.data;
|
res = res.data;
|
||||||
// init replay info
|
// init replay info
|
||||||
|
|
|
@ -72,7 +72,8 @@ function createData(resData) {
|
||||||
agent0: resData.fields.agent0,
|
agent0: resData.fields.agent0,
|
||||||
agent1: resData.fields.agent1,
|
agent1: resData.fields.agent1,
|
||||||
win: resData.fields.win ? 'Win' : 'Lose',
|
win: resData.fields.win ? 'Win' : 'Lose',
|
||||||
payoff: resData.fields.payoff
|
payoff: resData.fields.payoff,
|
||||||
|
replayUrl: `/replay/${resData.fields.name}?name=${resData.fields.name}&agent0=${resData.fields.agent0}&agent1=${resData.fields.agent1}&index=${resData.fields.index}`
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,7 +83,8 @@ const headCells = [
|
||||||
{ id: 'agent0', numeric: false, disablePadding: false, label: 'Agent 0' },
|
{ id: 'agent0', numeric: false, disablePadding: false, label: 'Agent 0' },
|
||||||
{ id: 'agent1', numeric: false, disablePadding: false, label: 'Agent 1' },
|
{ id: 'agent1', numeric: false, disablePadding: false, label: 'Agent 1' },
|
||||||
{ id: 'win', numeric: false, disablePadding: false, label: 'Result' },
|
{ id: 'win', numeric: false, disablePadding: false, label: 'Result' },
|
||||||
{ id: 'payoff', numeric: false, disablePadding: false, label: 'Payoff' }
|
{ id: 'payoff', numeric: false, disablePadding: false, label: 'Payoff' },
|
||||||
|
{ id: 'replay', numeric: false, disablePadding: false, label: 'Replay' }
|
||||||
];
|
];
|
||||||
|
|
||||||
const StyledTableCell = withStyles((theme) => ({
|
const StyledTableCell = withStyles((theme) => ({
|
||||||
|
@ -261,6 +263,7 @@ const EnhancedTable = (props) => {
|
||||||
<TableCell>{row.agent1}</TableCell>
|
<TableCell>{row.agent1}</TableCell>
|
||||||
<TableCell>{row.win}</TableCell>
|
<TableCell>{row.win}</TableCell>
|
||||||
<TableCell>{row.payoff}</TableCell>
|
<TableCell>{row.payoff}</TableCell>
|
||||||
|
<TableCell><a style={{display: "table-cell"}} href={row.replayUrl} target="_blank">Replay</a></TableCell>
|
||||||
</TableRow>
|
</TableRow>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
|
|
Loading…
Reference in New Issue