import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query' import { RotateCcw } from 'lucide-react' import { api } from '../lib/api' import type { NoteItem } from '../lib/api' import { invalidatePublic } from '../lib/invalidate' import { formatDateTime } from '../lib/utils' export default function AdminTrash() { const qc = useQueryClient() const { data, isLoading } = useQuery({ queryKey: ['admin', 'trash'], queryFn: () => api<{ items: NoteItem[]; total: number }>('/api/admin/trash'), }) const restore = useMutation({ mutationFn: (id: number) => api(`/api/admin/trash/${id}/restore`, { method: 'POST' }), onSuccess: () => { void qc.invalidateQueries({ queryKey: ['admin'] }) invalidatePublic(qc) }, }) return (
软删除的笔记保留 30 天,到期由每日 gc 物理清除;恢复后图片引用天然保全。
{isLoading ? (加载中…
) : !data || data.items.length === 0 ? (回收站是空的
) : ({n.title}
/{n.slug} · 删除于 {formatDateTime(n.deleted_at ?? 0)}
恢复失败,请重试
}