"use client" import type React from "react" import { useState } from "react" import { useRouter } from "next/navigation" import { ChevronLeft, Plus, X, Image as ImageIcon, UploadCloud } from "lucide-react" import { Card } from "@/components/ui/card" import { Button } from "@/components/ui/button" import { Textarea } from "@/components/ui/textarea" import { Label } from "@/components/ui/label" import { toast } from "@/components/ui/use-toast" import Image from "next/image" export default function NewMaterialPage({ params }: { params: { id: string } }) { const router = useRouter() const [content, setContent] = useState("") const [images, setImages] = useState([]) const [previewUrls, setPreviewUrls] = useState([]) // 模拟上传图片 const handleUploadImage = () => { // 这里应该是真实的图片上传逻辑 // 为了演示,这里模拟添加一些示例图片URL const mockImageUrls = [ "https://picsum.photos/id/237/200/300", "https://picsum.photos/id/238/200/300", "https://picsum.photos/id/239/200/300" ] const randomIndex = Math.floor(Math.random() * mockImageUrls.length) const newImage = mockImageUrls[randomIndex] if (!images.includes(newImage)) { setImages([...images, newImage]) setPreviewUrls([...previewUrls, newImage]) } } const handleRemoveImage = (indexToRemove: number) => { setImages(images.filter((_, index) => index !== indexToRemove)) setPreviewUrls(previewUrls.filter((_, index) => index !== indexToRemove)) } const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() if (!content && images.length === 0) { toast({ title: "错误", description: "请输入素材内容或上传图片", variant: "destructive", }) return } try { // 模拟保存新素材 await new Promise((resolve) => setTimeout(resolve, 1000)) toast({ title: "成功", description: "新素材已创建", }) router.push(`/content/${params.id}/materials`) } catch (error) { console.error("Failed to create new material:", error) toast({ title: "错误", description: "创建新素材失败", variant: "destructive", }) } } return (

新建素材