diff --git a/src/components/card-preview.tsx b/src/components/card-preview.tsx
index 6337d79..ce7dcc4 100644
--- a/src/components/card-preview.tsx
+++ b/src/components/card-preview.tsx
@@ -1,8 +1,8 @@
import { Show, For } from 'solid-js';
import { marked } from '../markdown';
import { getLayerStyle } from './utils/dimensions';
-import {getSelectionBoxStyle, useSelection} from './stores/use-selection';
-import {DeckStore} from "./stores/deckStore";
+import { getSelectionBoxStyle, useSelection } from './stores/use-selection';
+import type { DeckStore } from "./stores/deckStore";
export interface CardPreviewProps {
store: DeckStore;
@@ -11,30 +11,30 @@ export interface CardPreviewProps {
/**
* 渲染 layer 内容
*/
-function renderLayer(layer: { prop: string }, cardData: DeckStore['cards'][number]): string {
+function renderLayer(layer: { prop: string }, cardData: DeckStore['state']['cards'][number]): string {
const content = cardData[layer.prop] || '';
return marked.parse(content) as string;
}
export function CardPreview(props: CardPreviewProps) {
- const currentCard = () => props.store.cards[props.store.activeTab];
- const visibleLayers = () => props.store.layerConfigs.filter((l) => l.visible);
+ const currentCard = () => props.store.state.cards[props.store.state.activeTab];
+ const visibleLayers = () => props.store.state.layerConfigs.filter((l) => l.visible);
const selectionStyle = () =>
- getSelectionBoxStyle(props.store.selectStart, props.store.selectEnd, props.store.dimensions);
-
+ getSelectionBoxStyle(props.store.state.selectStart, props.store.state.selectEnd, props.store.state.dimensions);
+
const selection = useSelection(props.store);
let cardRef: HTMLDivElement | undefined;
return (
-
+
selection.onMouseDown(e, cardRef!)}
onMouseMove={(e) => selection.onMouseMove(e, cardRef!)}
@@ -42,7 +42,7 @@ export function CardPreview(props: CardPreviewProps) {
onMouseLeave={selection.onMouseLeave}
>
{/* 框选遮罩 */}
-
+
{/* 编辑模式下的网格线 */}
-
+
-
+
{(_, i) => (
)}
-
+
{(_, i) => (
)}
@@ -84,12 +84,12 @@ export function CardPreview(props: CardPreviewProps) {
{/* 渲染每个 layer */}
{(layer) => {
- const style = getLayerStyle(layer, props.store.dimensions!);
+ const style = getLayerStyle(layer, props.store.state.dimensions!);
return (
卡牌属性
@@ -53,8 +53,8 @@ export function PropertiesEditorPanel(props: PropertiesEditorPanelProps) {
store.setSize(e.target.value)}
+ value={store.state.size}
+ onInput={(e) => store.actions.setSize(e.target.value)}
/>
@@ -63,8 +63,8 @@ export function PropertiesEditorPanel(props: PropertiesEditorPanelProps) {
store.setGrid(e.target.value)}
+ value={store.state.grid}
+ onInput={(e) => store.actions.setGrid(e.target.value)}
/>
@@ -73,8 +73,8 @@ export function PropertiesEditorPanel(props: PropertiesEditorPanelProps) {
store.setBleed(e.target.value)}
+ value={store.state.bleed}
+ onInput={(e) => store.actions.setBleed(e.target.value)}
/>
@@ -83,33 +83,33 @@ export function PropertiesEditorPanel(props: PropertiesEditorPanelProps) {
store.setPadding(e.target.value)}
+ value={store.state.padding}
+ onInput={(e) => store.actions.setPadding(e.target.value)}
/>
图层
-
+
{(layer) => (
store.toggleLayerVisible(layer.prop)}
+ onChange={() => store.actions.toggleLayerVisible(layer.prop)}
class="cursor-pointer"
/>
{layer.prop}
)}
@@ -118,7 +118,7 @@ export function PropertiesEditorPanel(props: PropertiesEditorPanelProps) {