Commit 6040948f authored by Chunchi Che's avatar Chunchi Che

add CardModal component

parent d174c541
Pipeline #18745 passed with stages
in 5 minutes and 21 seconds
...@@ -77,6 +77,9 @@ export const { ...@@ -77,6 +77,9 @@ export const {
clearHandsInteractivity, clearHandsInteractivity,
addHandsInteractivity, addHandsInteractivity,
updateTimeLimit, updateTimeLimit,
setCardModalIsOpen,
setCardModalText,
setCardModalImgUrl,
} = duelSlice.actions; } = duelSlice.actions;
export const selectDuelHsStart = (state: RootState) => { export const selectDuelHsStart = (state: RootState) => {
return state.duel.meInitInfo != null; return state.duel.meInitInfo != null;
......
import React from "react";
import { useAppSelector } from "../../../hook";
import { store } from "../../../store";
import {
selectCardModalIsOpen,
selectCardModalName,
selectCardModalDesc,
selectCardModalImgUrl,
} from "../../../reducers/duel/modal";
import { setCardModalIsOpen } from "../../../reducers/duel/mod";
import { Modal, Card } from "antd";
const { Meta } = Card;
const CARD_WIDTH = 240;
const CardModal = () => {
const dispatch = store.dispatch;
const isOpen = useAppSelector(selectCardModalIsOpen);
const name = useAppSelector(selectCardModalName);
const desc = useAppSelector(selectCardModalDesc);
const imgUrl = useAppSelector(selectCardModalImgUrl);
const handleOkOrCancel = () => {
dispatch(setCardModalIsOpen(false));
};
return (
<>
<Modal open={isOpen} onOk={handleOkOrCancel} onCancel={handleOkOrCancel}>
<Card
hoverable
style={{ width: CARD_WIDTH }}
cover={<img alt={name} src={imgUrl} />}
>
<Meta title={name} />
<p>{desc}</p>
</Card>
</Modal>
</>
);
};
export default CardModal;
...@@ -20,6 +20,7 @@ import * as CONFIG from "../../../config/ui"; ...@@ -20,6 +20,7 @@ import * as CONFIG from "../../../config/ui";
import { Card } from "../../../reducers/duel/util"; import { Card } from "../../../reducers/duel/util";
import { selectCurrentPlayer } from "../../../reducers/duel/turnSlice"; import { selectCurrentPlayer } from "../../../reducers/duel/turnSlice";
import { selectCurrentPhase } from "../../../reducers/duel/phaseSlice"; import { selectCurrentPhase } from "../../../reducers/duel/phaseSlice";
import CardModal from "./cardModal";
// CONFIG // CONFIG
...@@ -136,11 +137,14 @@ export default class SimpleDuelPlateImpl implements IDuelPlate { ...@@ -136,11 +137,14 @@ export default class SimpleDuelPlateImpl implements IDuelPlate {
}, []); }, []);
return ( return (
<canvas <>
width={window.innerWidth} <canvas
height={window.innerHeight} width={window.innerWidth}
ref={canvasRef} height={window.innerHeight}
/> ref={canvasRef}
/>
<CardModal />
</>
); );
} }
......
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