import type { CardType } from "$lib/model"; import { Button } from "$ui/Button"; import { createEffect, createSignal, Show } from "solid-js"; type CardEditorProps = { front?: string; back?: string; mediaUrl?: string; cardType?: CardType; hints?: string[]; onSave: (data: { front: string; back: string; mediaUrl?: string; cardType: CardType; hints: string[] }) => void; onCancel?: () => void; }; export function CardEditor(props: CardEditorProps) { const [front, setFront] = createSignal(""); const [back, setBack] = createSignal(""); const [mediaUrl, setMediaUrl] = createSignal(""); const [cardType, setCardType] = createSignal("basic"); const [hints, setHints] = createSignal(""); createEffect(() => { if (props.front) setFront(props.front); if (props.back) setBack(props.back); if (props.mediaUrl) setMediaUrl(props.mediaUrl); if (props.cardType) setCardType(props.cardType); if (props.hints) setHints(props.hints.join(", ")); }); const handleSubmit = (e: Event) => { e.preventDefault(); const hintsArray = hints().split(",").map(h => h.trim()).filter(h => h); props.onSave({ front: front(), back: back(), mediaUrl: mediaUrl() || undefined, cardType: cardType(), hints: hintsArray, }); if (!props.front) { setFront(""); setBack(""); setMediaUrl(""); setCardType("basic"); setHints(""); } }; return (