Files
ttrpg-tools/src/components/md-deck/DeckContent.tsx
T

44 lines
1.2 KiB
TypeScript

import { Show } from 'solid-js';
import { CardPreview } from './CardPreview';
import type { DeckStore } from './hooks/deckStore';
export interface DeckContentProps {
store: DeckStore;
isLoading: boolean;
}
/**
* 卡牌预览内容区域:错误/加载/卡牌预览/空状态
*/
export function DeckContent(props: DeckContentProps) {
return (
<>
{/* 错误提示 */}
<Show when={props.store.state.error}>
<div class="bg-red-50 border border-red-200 text-red-700 px-4 py-3 rounded mb-4">
{props.store.state.error}
</div>
</Show>
{/* 加载状态 */}
<Show when={props.isLoading}>
<div class="text-center text-gray-500 py-8">
加载卡牌数据中...
</div>
</Show>
{/* 卡牌预览 */}
<Show when={!props.isLoading && props.store.state.cards.length > 0 && !props.store.state.error}>
<CardPreview store={props.store} />
</Show>
{/* 空状态 */}
<Show when={!props.isLoading && props.store.state.cards.length === 0 && !props.store.state.error}>
<div class="text-center text-gray-500 py-8">
暂无卡牌数据
</div>
</Show>
</>
);
}