'use client' import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog" import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { AdminApi } from "@/lib/api"; import { useState } from "react"; import { toast } from "sonner"; interface AddBlogProps { children: React.ReactNode; onRefresh: () => void; } export default function AddBlog({ children, onRefresh }: AddBlogProps) { const [open, setOpen] = useState(false); const [blog, setBlog] = useState({ title: "", description: "", contentUrl: "", }); const handleSubmit = async () => { try { const res = await AdminApi.web.blog.create({ ...blog, }); if (res) { setOpen(false); onRefresh(); toast.success("添加成功"); setBlog({ title: '', description: '', contentUrl: '', }) } else { throw new Error(); } } catch (error) { toast.error((error as Error).message || "添加失败"); } } return ( {children} 添加博客
setBlog({ ...blog, title: e.target.value })} />
setBlog({ ...blog, description: e.target.value })} />
setBlog({ ...blog, contentUrl: e.target.value })} />
) }