"use client"; import { searchItems } from "@/lib/search"; import Image from "next/image"; import { useRouter } from "next/navigation"; import { ArrowLeftIcon, CheckIcon, SearchIcon } from "lucide-react"; import { useMemo, useState, useTransition } from "react"; import { toast } from "sonner"; import { createStructuredGuide } from "@/app/admin/actions"; import { MediaUploader, type UploadedMedia } from "@/components/admin/media-uploader"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "@/components/ui/card"; import { Field, FieldDescription, FieldGroup, FieldLabel } from "@/components/ui/field"; import { InputGroup, InputGroupAddon, InputGroupInput } from "@/components/ui/input-group"; import { Spinner } from "@/components/ui/spinner"; import { Textarea } from "@/components/ui/textarea"; import { characterRarityGradientClass } from "@/lib/catalog/rarity"; import { cn } from "@/lib/utils"; type Character = { key: string; name: string; aliases: string[]; element: string | null; rarity: number | null; imageUrl: string }; export function CreateGuideFlow({ characters, existingKeys }: { characters: Character[]; existingKeys: string[] }) { const router = useRouter(); const [query, setQuery] = useState(""); const [selected, setSelected] = useState(null); const [cover, setCover] = useState(null); const [overview, setOverview] = useState(""); const [pending, startTransition] = useTransition(); const existing = useMemo(() => new Set(existingKeys), [existingKeys]); const search = searchItems(characters, query, (character) => [character.name, ...character.aliases].join(" "), (character) => [character.name, ...character.aliases]); const filtered = search.items; if (selected) { return ( ตั้งค่า Guide ของ {selected.name} เพิ่มภาพหน้าปก และใส่ Overview ได้หากต้องการ Guide Image {cover ? (
{`Guide
) : null}
Overview (optional)