Commit 67571750 authored by Chunchi Che's avatar Chunchi Che

update WaitRoom.tsx

parent 117b2184
Pipeline #20470 passed with stages
in 5 minutes and 55 seconds
...@@ -41,6 +41,7 @@ import { ...@@ -41,6 +41,7 @@ import {
import { initMeExtraDeckMeta } from "../reducers/duel/extraDeckSlice"; import { initMeExtraDeckMeta } from "../reducers/duel/extraDeckSlice";
import type { MenuProps, UploadProps } from "antd"; import type { MenuProps, UploadProps } from "antd";
import { Link, useParams } from "react-router-dom"; import { Link, useParams } from "react-router-dom";
import { selectDuelStart } from "../reducers/moraSlice";
const READY_STATE = "ready"; const READY_STATE = "ready";
...@@ -84,6 +85,7 @@ const WaitRoom = () => { ...@@ -84,6 +85,7 @@ const WaitRoom = () => {
const isHost = useAppSelector(selectIsHost); const isHost = useAppSelector(selectIsHost);
const player0 = useAppSelector(selectPlayer0); const player0 = useAppSelector(selectPlayer0);
const player1 = useAppSelector(selectPlayer1); const player1 = useAppSelector(selectPlayer1);
const duelStart = useAppSelector(selectDuelStart);
const [api, contextHolder] = notification.useNotification(); const [api, contextHolder] = notification.useNotification();
const [deckTitle, setDeckTitle] = useState("请选择卡组"); const [deckTitle, setDeckTitle] = useState("请选择卡组");
// FIXME: 这些数据应该从`store`中获取 // FIXME: 这些数据应该从`store`中获取
...@@ -153,6 +155,18 @@ const WaitRoom = () => { ...@@ -153,6 +155,18 @@ const WaitRoom = () => {
api.info({ message: "Chat", description: chat, placement: "bottom" }); api.info({ message: "Chat", description: chat, placement: "bottom" });
} }
}, [chat]); }, [chat]);
useEffect(() => {
// 若当前玩家是房主并且对战双方都已准备完毕,跳转到猜拳页面;
// 否则停留在当前页面。
if (
isHost &&
joined &&
player0.state === READY_STATE &&
player1.state === READY_STATE
) {
navigate(`/mora/${player}/${passWd}/${ip}`);
}
}, [duelStart]);
return ( return (
<> <>
...@@ -181,22 +195,7 @@ const WaitRoom = () => { ...@@ -181,22 +195,7 @@ const WaitRoom = () => {
</Space> </Space>
<Space wrap size={10}> <Space wrap size={10}>
<Avatar size={25} icon={<SendOutlined />} /> <Avatar size={25} icon={<SendOutlined />} />
<Button onClick={handleChoseStart}> <Button onClick={handleChoseStart}>开始游戏</Button>
<Link
to={
// 若当前玩家是房主并且对战双方都已准备完毕,跳转到猜拳页面;
// 否则停留在当前页面。
!isHost ||
!joined ||
player0.state !== READY_STATE ||
player1.state !== READY_STATE
? {}
: { pathname: `/mora/${player}/${passWd}/${ip}` }
}
>
开始游戏
</Link>
</Button>
</Space> </Space>
</Space> </Space>
</> </>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment