Usage in React
The mutation needs a new import.
import { createGameday, createGame } from "./../../graphql/mutations";
The section gameday contains a button for the gameday creation with a data field.
<GridItem xs={12} sm={12} md={12}>
<Card>
<CardHeader color="primary">
<GridContainer justify="flex-start">
<GridItem xs={12} sm={12} md={12}>
<h4 className={classes.cardTitleWhite}>Gamedays</h4>
<p className={classes.cardCategoryWhite}>
Whenever wherever games happend
</p>
</GridItem>
</GridContainer>
<GridContainer justify="flex-end">
<GridItem xs={12} sm={12} md={12}>
<MuiPickersUtilsProvider utils={DateFnsUtils}>
<KeyboardDatePicker
disableToolbar
variant="inline"
format="dd.MM.yyyy"
margin="normal"
id="date-picker-inline"
label="Date"
value={selectedDate}
onChange={handleDateChange}
KeyboardButtonProps={{
"aria-label": "change date"
}}
/>
</MuiPickersUtilsProvider>
<Button onClick={onClickCreateGameDay} color="primary">
Create a Gameday
</Button>
</GridItem>
</GridContainer>
</CardHeader>
<CardBody>
<Table
tableHeaderColor="primary"
tableHead={["Id", "Date"]}
tableData={gameDayItems}
selectedRow={handleGameDaySelection}
/>
</CardBody>
</Card>
</GridItem>
The button call this function, which create the gameday.
function onClickCreateGameDay() {
addGameDay();
}
const addGameDay = async () => {
const d = selectedDate;
const gameDayDateString = [
d.getFullYear(),
"-",
("0" + (d.getMonth() + 1)).slice(-2),
"-",
("0" + d.getDate()).slice(-2)
].join("");
await API.graphql(
graphqlOperation(createGameday, {
input: { id: gameDayDateString, date: gameDayDateString }
})
);
};
For the creation of the games we need the relation to the gameday and the players.
function onClickCreateGame() {
const player1 = playerItems.find(player => player.id === selectedPlayer1);
const player2 = playerItems.find(player => player.id === selectedPlayer2);
const gameDayId = selectedGameDay[1];
const gameId = [gameDayId] + "#" + selectedPlayer1 + "#" + selectedPlayer2;
addGame(
gameDayId,
gameId,
player1.id,
player2.id,
resultPlayer1,
resultPlayer2
);
}
const addGame = async (
gameDayId,
gameId,
player1Id,
player2Id,
resultPlayer1,
resultPlayer2
) => {
await API.graphql(
graphqlOperation(createGame, {
input: {
id: gameId,
gameGamedayId: gameDayId,
gamePlayer1Id: player1Id,
gamePlayer2Id: player2Id,
resultPlayer1: resultPlayer1,
resultPlayer2: resultPlayer2
}
})
);
};
Top comments (0)