Commit 11d7bb1b authored by Chunchi Che's avatar Chunchi Che

decouple DeckCard

parent 94cf7750
Pipeline #23294 passed with stages
in 11 minutes and 12 seconds
...@@ -438,10 +438,14 @@ const DeckZone: React.FC<{ ...@@ -438,10 +438,14 @@ const DeckZone: React.FC<{
> >
<div className={styles["card-continer"]}> <div className={styles["card-continer"]}>
{cards.map((card, i) => ( {cards.map((card, i) => (
<Card <DeckCard
value={card} value={card}
key={card.id + i + type} key={card.id + i + type}
source={type} source={type}
onClick={() => {
selectedCard.id = card.id;
selectedCard.open = true;
}}
onRightClick={() => editDeckStore.remove(type, card)} onRightClick={() => editDeckStore.remove(type, card)}
/> />
))} ))}
...@@ -473,7 +477,15 @@ const SearchResults: React.FC<{ ...@@ -473,7 +477,15 @@ const SearchResults: React.FC<{
<> <>
<div className={styles["search-cards"]}> <div className={styles["search-cards"]}>
{currentData.map((card) => ( {currentData.map((card) => (
<Card value={card} key={card.id} source="search" /> <DeckCard
value={card}
key={card.id}
source="search"
onClick={() => {
selectedCard.id = card.id;
selectedCard.open = true;
}}
/>
))} ))}
</div> </div>
{results.length > itemsPerPage && ( {results.length > itemsPerPage && (
...@@ -497,11 +509,12 @@ const SearchResults: React.FC<{ ...@@ -497,11 +509,12 @@ const SearchResults: React.FC<{
}); });
/** 本组件内使用的单张卡片,增加了文字在图片下方 */ /** 本组件内使用的单张卡片,增加了文字在图片下方 */
const Card: React.FC<{ export const DeckCard: React.FC<{
value: CardMeta; value: CardMeta;
source: Type | "search"; source: Type | "search";
onRightClick?: () => void; onRightClick?: () => void;
}> = memo(({ value, source, onRightClick }) => { onClick?: () => void;
}> = memo(({ value, source, onRightClick, onClick }) => {
const ref = useRef<HTMLDivElement>(null); const ref = useRef<HTMLDivElement>(null);
const [{ isDragging }, drag] = useDrag({ const [{ isDragging }, drag] = useDrag({
type: "Card", type: "Card",
...@@ -518,10 +531,7 @@ const Card: React.FC<{ ...@@ -518,10 +531,7 @@ const Card: React.FC<{
className={styles.card} className={styles.card}
ref={ref} ref={ref}
style={{ opacity: isDragging && source !== "search" ? 0 : 1 }} style={{ opacity: isDragging && source !== "search" ? 0 : 1 }}
onClick={() => { onClick={onClick}
selectedCard.id = value.id;
selectedCard.open = true;
}}
onContextMenu={(e) => { onContextMenu={(e) => {
e.preventDefault(); e.preventDefault();
onRightClick?.(); onRightClick?.();
......
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