Commit 5be46d55 authored by Chunchi Che's avatar Chunchi Che

optimize CheckCounterModal

parent 576dd8ba
Pipeline #23480 passed with stages
in 21 minutes and 46 seconds
.container {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 10px;
.card {
width: 100px;
}
.input-number {
width: 100px;
}
}
// 指示器选择弹窗 // 指示器选择弹窗
import { Omit } from "@react-spring/web"; import { Omit } from "@react-spring/web";
import { Button, Card, Col, InputNumber, Row } from "antd"; import { Button, InputNumber } from "antd";
import React, { useEffect, useState } from "react"; import React, { useEffect, useState } from "react";
import { proxy, useSnapshot } from "valtio"; import { proxy, useSnapshot } from "valtio";
import { fetchStrings, Region, sendSelectCounterResponse } from "@/api"; import { fetchStrings, Region, sendSelectCounterResponse } from "@/api";
import { useConfig } from "@/config"; import { YgoCard } from "@/ui/Shared";
import { NeosModal } from "../NeosModal"; import { NeosModal } from "../NeosModal";
import styles from "./index.module.scss";
interface CheckCounterModalProps { interface CheckCounterModalProps {
isOpen: boolean; isOpen: boolean;
...@@ -25,7 +26,6 @@ const defaultProps = { ...@@ -25,7 +26,6 @@ const defaultProps = {
const localStore = proxy<CheckCounterModalProps>(defaultProps); const localStore = proxy<CheckCounterModalProps>(defaultProps);
const NeosConfig = useConfig();
export const CheckCounterModal = () => { export const CheckCounterModal = () => {
const snapCheckCounterModal = useSnapshot(localStore); const snapCheckCounterModal = useSnapshot(localStore);
...@@ -35,7 +35,7 @@ export const CheckCounterModal = () => { ...@@ -35,7 +35,7 @@ export const CheckCounterModal = () => {
const counterName = fetchStrings( const counterName = fetchStrings(
Region.Counter, Region.Counter,
`0x${snapCheckCounterModal.counterType?.toString(16)}`, `0x${snapCheckCounterModal.counterType?.toString(16)}`,
); // FIXME: 这里转十六进制的逻辑有问题 );
const [selected, setSelected] = useState(new Array(options.length)); const [selected, setSelected] = useState(new Array(options.length));
const sum = selected.reduce((sum, current) => sum + current, 0); const sum = selected.reduce((sum, current) => sum + current, 0);
...@@ -60,37 +60,28 @@ export const CheckCounterModal = () => { ...@@ -60,37 +60,28 @@ export const CheckCounterModal = () => {
</Button> </Button>
} }
> >
<Row> <div className={styles.container}>
{options.map((option, idx) => { {options.map((option, idx) => {
return ( return (
<Col span={4} key={idx}> <div key={idx}>
<Card <YgoCard code={option.code} className={styles.card} />
hoverable <InputNumber
style={{ width: 120 }} className={styles["input-number"]}
cover={ min={0}
<img max={option.max}
alt={option.code.toString()} defaultValue={0}
src={`${NeosConfig.cardImgUrl}/${option.code}.jpg`} onChange={(value) => {
/> setSelected((prevSelected) => {
} let newSelected = [...prevSelected];
> newSelected[idx] = value ?? 0;
<InputNumber return newSelected;
min={0} });
max={option.max} }}
defaultValue={0} />
onChange={(value) => { </div>
setSelected((prevSelected) => {
let newSelected = [...prevSelected];
newSelected[idx] = value ?? 0;
return newSelected;
});
}}
/>
</Card>
</Col>
); );
})} })}
</Row> </div>
</NeosModal> </NeosModal>
); );
}; };
......
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