'use client'; import { Button } from "@/components/ui/button" import { Dialog, DialogClose, DialogContent, DialogDescription, 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 React, { useEffect, useState } from "react"; import { toast } from "sonner"; interface SetPasswordDialogProps { id: string; children: React.ReactNode; } export function SetPasswordDialog({ id, children }: SetPasswordDialogProps) { const [open, setOpen] = useState(false); const [password, setPassword] = useState(''); const handleSubmit = async () => { if (!password) { return toast.error('请输入密码'); } await AdminApi.web.blog.setPassword(id, password).then(() => { toast.success('修改成功'); setOpen(false); }).catch(e => { toast.error(`${e.message || e || '请求失败'}`) }); } useEffect(() => { if (open) { setPassword(''); } }, [open]) return ( setOpen(v)}>
{children} 修改密码 通过密码访问受保护的文章,需开启“受密码保护”权限
setPassword(e.target.value)} />
) }