Commit a9c5649f authored by Chunchi Che's avatar Chunchi Che

update

parent 0d6af302
Pipeline #23191 passed with stages
in 11 minutes and 44 seconds
import { ygopro } from "@/api"; import { ygopro } from "@/api";
import { eventbus, Task } from "@/infra"; import { eventbus, Task } from "@/infra";
import { RoomStage, roomStore } from "@/stores"; import { RoomStage, roomStore, SideStage, sideStore } from "@/stores";
export default function handleSelectTp(_: ygopro.YgoStocMsg) { export default function handleSelectTp(_: ygopro.YgoStocMsg) {
if (sideStore.stage !== SideStage.NONE) {
sideStore.stage = SideStage.TP_SELECTING;
} else {
roomStore.stage = RoomStage.TP_SELECTING; roomStore.stage = RoomStage.TP_SELECTING;
}
eventbus.emit(Task.Tp); eventbus.emit(Task.Tp);
} }
...@@ -4,7 +4,7 @@ import { useSnapshot } from "valtio"; ...@@ -4,7 +4,7 @@ import { useSnapshot } from "valtio";
import { sendTpResult } from "@/api"; import { sendTpResult } from "@/api";
import { SideStage, sideStore } from "@/stores"; import { SideStage, sideStore } from "@/stores";
import { IconFont } from "@/ui/Shared"; import { IconFont, SpecialButton } from "@/ui/Shared";
import { Tp, TpPopover } from "@/ui/WaitRoom/Popover"; import { Tp, TpPopover } from "@/ui/WaitRoom/Popover";
import styles from "./index.module.scss"; import styles from "./index.module.scss";
...@@ -13,18 +13,24 @@ export const TpModal: React.FC = () => { ...@@ -13,18 +13,24 @@ export const TpModal: React.FC = () => {
const { stage } = useSnapshot(sideStore); const { stage } = useSnapshot(sideStore);
return ( return (
<Modal centered open={stage === SideStage.TP_SELECTING}> <Modal
centered
open={stage === SideStage.TP_SELECTING}
footer={<></>}
closable={false}
>
<div className={styles.container}> <div className={styles.container}>
<TpPopover <TpPopover
onSelect={(tp) => { onSelect={(tp) => {
sendTpResult(tp === Tp.First); sendTpResult(tp === Tp.First);
sideStore.stage = SideStage.TP_SELECTED; sideStore.stage = SideStage.TP_SELECTED;
}} }}
forceOpen={stage === SideStage.TP_SELECTING}
> >
<> <SpecialButton>
<IconFont type="icon-one" size={18} /> <IconFont type="icon-one" size={18} />
<span>请选择先后手</span> <span>请选择先后手</span>
</> </SpecialButton>
</TpPopover> </TpPopover>
</div> </div>
</Modal> </Modal>
......
...@@ -68,8 +68,11 @@ export const MoraPopover: React.FC< ...@@ -68,8 +68,11 @@ export const MoraPopover: React.FC<
}; };
export const TpPopover: React.FC< export const TpPopover: React.FC<
React.PropsWithChildren<{ onSelect?: (result: Tp) => void }> React.PropsWithChildren<{
> = ({ children, onSelect }) => { onSelect?: (result: Tp) => void;
forceOpen?: boolean;
}>
> = ({ children, onSelect, forceOpen }) => {
const [open, setOpen] = useState(false); const [open, setOpen] = useState(false);
// 需要在mora的service之中,emit一个事件,让这个组件监听到,然后打开popover // 需要在mora的service之中,emit一个事件,让这个组件监听到,然后打开popover
...@@ -113,7 +116,7 @@ export const TpPopover: React.FC< ...@@ -113,7 +116,7 @@ export const TpPopover: React.FC<
))} ))}
</Space> </Space>
} }
open={open} open={open || forceOpen}
placement="bottom" placement="bottom"
> >
{children} {children}
......
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