Handle error in challenge action

This commit is contained in:
Moon Patel
2023-07-30 20:02:30 +05:30
parent e98c50d25d
commit cf4670582d
2 changed files with 22 additions and 12 deletions
+20 -10
View File
@@ -1,6 +1,6 @@
import React from 'react'
import { Form, redirect, useParams } from 'react-router-dom'
import { Form, redirect, useActionData, useParams } from 'react-router-dom'
import { Avatar, Button, Card, Flex, Select, Text, Title } from '@mantine/core'
import { getUserData } from '../../utils/auth'
@@ -8,6 +8,8 @@ import { getUserData } from '../../utils/auth'
const ChallengeFriend = () => {
const params = useParams();
let friend_username = params["friend_username"];
const res = useActionData();
console.log(res);
return (
<Card
@@ -31,6 +33,9 @@ const ChallengeFriend = () => {
{ value: 'RANDOM', label: 'Random' }
]} />
<Button color='lime' type='submit' >Challenge</Button>
<Text style={{ color: 'red' }}>
{res?.message}
</Text>
</Form>
</Card>
)
@@ -57,17 +62,22 @@ export const playFriendAction = async ({ request, params }) => {
});
console.log(response.status);
const resJSON = await response.json();
const { roomID } = resJSON;
console.log('Room ID:', roomID);
if (response.ok) {
// set properties of the game
localStorage.setItem('roomID', roomID);
localStorage.setItem('myColor', color);
localStorage.setItem('timeLimit', timeLimit);
localStorage.setItem('opponent', challenged);
const resJSON = await response.json();
const { roomID } = resJSON;
console.log('Room ID:', roomID);
return redirect(`/game/friend/${roomID}`);
// set properties of the game
localStorage.setItem('roomID', roomID);
localStorage.setItem('myColor', color);
localStorage.setItem('timeLimit', timeLimit);
localStorage.setItem('opponent', challenged);
return redirect(`/game/friend/${roomID}`);
} else {
return response;
}
} catch (err) {
console.log(err)
return err;
+2 -2
View File
@@ -18,10 +18,10 @@ const Layout = () => {
description={"description"}
/>
<MediaQuery smallerThan="sm" styles={{ display: 'none' }}>
<Image width={600} miw={480} src="/src/assets/images/chess_board.png" />
<img draggable={false} width={600} miw={480} src="/src/assets/images/chess_board.png" />
</MediaQuery>
<MediaQuery largerThan="sm" styles={{ display: 'none' }}>
<Image width="100%" maw={540} src="/src/assets/images/chess_board.png" />
<img draggable={false} width="100%" maw={540} src="/src/assets/images/chess_board.png" />
</MediaQuery>
<NavLink
p="2px"