Commit 5c3a29b6 authored by timel's avatar timel

optimize: build card

parent a00d11f1
...@@ -20,15 +20,15 @@ import "@/styles/core.scss"; ...@@ -20,15 +20,15 @@ import "@/styles/core.scss";
import "@/styles/inject.scss"; import "@/styles/inject.scss";
import { ProConfigProvider } from "@ant-design/pro-provider"; import { ProConfigProvider } from "@ant-design/pro-provider";
import { ConfigProvider, App } from "antd"; import { App, ConfigProvider } from "antd";
import zhCN from "antd/locale/zh_CN"; import zhCN from "antd/locale/zh_CN";
import React from "react"; import React from "react";
import ReactDOM from "react-dom/client"; import ReactDOM from "react-dom/client";
import { NeosRouter } from "./ui/NeosRouter";
import { theme } from "@/ui/theme"; import { theme } from "@/ui/theme";
import { NeosRouter } from "./ui/NeosRouter";
const root = ReactDOM.createRoot( const root = ReactDOM.createRoot(
document.getElementById("root") as HTMLElement document.getElementById("root") as HTMLElement
); );
......
...@@ -3,10 +3,11 @@ import { ...@@ -3,10 +3,11 @@ import {
Checkbox, Checkbox,
Form, Form,
Input, Input,
InputNumber,
Select, Select,
type SelectProps, type SelectProps,
InputNumber,
} from "antd"; } from "antd";
import styles from "./Filter.module.scss"; import styles from "./Filter.module.scss";
const options: SelectProps["options"] = []; const options: SelectProps["options"] = [];
...@@ -102,7 +103,7 @@ export const Filter: React.FC = () => { ...@@ -102,7 +103,7 @@ export const Filter: React.FC = () => {
</div> </div>
<div className={styles.btns}> <div className={styles.btns}>
<Button type="primary">确定</Button> <Button type="primary">确定</Button>
<Button type="text">取消</Button> <Button type="text">&nbsp;</Button>
</div> </div>
</> </>
); );
......
...@@ -8,14 +8,14 @@ import { ...@@ -8,14 +8,14 @@ import {
UndoOutlined, UndoOutlined,
} from "@ant-design/icons"; } from "@ant-design/icons";
import { import {
App,
Badge, Badge,
Button, Button,
ConfigProvider, ConfigProvider,
Input, Input,
message,
Space, Space,
type ThemeConfig, type ThemeConfig,
message,
App,
} from "antd"; } from "antd";
import { memo, useEffect, useRef, useState } from "react"; import { memo, useEffect, useRef, useState } from "react";
import { DndProvider, useDrag, useDrop } from "react-dnd"; import { DndProvider, useDrag, useDrop } from "react-dnd";
...@@ -26,6 +26,7 @@ import { proxy, useSnapshot } from "valtio"; ...@@ -26,6 +26,7 @@ import { proxy, useSnapshot } from "valtio";
import { subscribeKey } from "valtio/utils"; import { subscribeKey } from "valtio/utils";
import { type CardMeta, searchCards } from "@/api"; import { type CardMeta, searchCards } from "@/api";
import { isExtraDeckCard, isToken } from "@/common";
import { deckStore, type IDeck, initStore } from "@/stores"; import { deckStore, type IDeck, initStore } from "@/stores";
import { import {
Background, Background,
...@@ -47,7 +48,6 @@ import { ...@@ -47,7 +48,6 @@ import {
iDeckToEditingDeck, iDeckToEditingDeck,
type Type, type Type,
} from "./utils"; } from "./utils";
import { isToken } from "@/common";
const theme: ThemeConfig = { const theme: ThemeConfig = {
components: { components: {
...@@ -331,10 +331,19 @@ const DeckZone: React.FC<{ ...@@ -331,10 +331,19 @@ const DeckZone: React.FC<{
const SearchResults: React.FC<{ const SearchResults: React.FC<{
results: CardMeta[]; results: CardMeta[];
}> = memo(({ results }) => { }> = memo(({ results }) => {
const handleClick = (card: CardMeta) => {
const type = isExtraDeckCard(card.data.type ?? 0) ? "extra" : "main";
canAdd(card, type, editDeckStore).result && editDeckStore.add(type, card);
};
return ( return (
<div className={styles["search-cards"]}> <div className={styles["search-cards"]}>
{results.map((item) => ( {results.map((card) => (
<Card value={item} key={v4uuid()} source="search" /> <Card
value={card}
key={v4uuid()}
source="search"
onClick={() => handleClick(card)}
/>
))} ))}
</div> </div>
); );
......
...@@ -15,8 +15,7 @@ import { ...@@ -15,8 +15,7 @@ import {
SortCardModal, SortCardModal,
YesNoModal, YesNoModal,
} from "./Message"; } from "./Message";
import { LifeBar, Mat, Menu } from "./PlayMat"; import { LifeBar, Mat, Menu, Underlying } from "./PlayMat";
import { Underlying } from "./PlayMat";
export const Component: React.FC = () => { export const Component: React.FC = () => {
return ( return (
......
import { useEffect } from "react"; import classNames from "classnames";
import { createRoot } from "react-dom/client"; import { useSnapshot } from "valtio";
import { isMe, matStore } from "@/stores";
import { withPortalToBody } from "@/ui/Shared"; import { withPortalToBody } from "@/ui/Shared";
import styles from "./index.module.scss"; import styles from "./index.module.scss";
import classNames from "classnames";
import { matStore, isMe } from "@/stores";
import { useSnapshot } from "valtio";
export const Underlying: React.FC<{}> = withPortalToBody(() => { export const Underlying: React.FC<{}> = withPortalToBody(() => {
const { currentPlayer } = useSnapshot(matStore); const { currentPlayer } = useSnapshot(matStore);
......
import { type ThemeConfig, theme as antdTheme } from "antd"; import { theme as antdTheme, type ThemeConfig } from "antd";
export const theme: ThemeConfig = { export const theme: ThemeConfig = {
algorithm: antdTheme.darkAlgorithm, algorithm: antdTheme.darkAlgorithm,
token: {
colorPrimary: "#0085da",
},
components: { components: {
Message: { Message: {
colorBgElevated: "#3f4d60", colorBgElevated: "#3f4d60",
......
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