import React, { useEffect, useState } from 'react' export default function AdminUploadQueue() { const [items, setItems] = useState([]) const [loading, setLoading] = useState(false) const [error, setError] = useState('') const [notes, setNotes] = useState({}) const loadPending = async () => { setLoading(true) setError('') try { const response = await window.axios.get('/api/admin/uploads/pending') setItems(Array.isArray(response?.data?.data) ? response.data.data : []) } catch (loadError) { setError(loadError?.response?.data?.message || 'Failed to load moderation queue.') } finally { setLoading(false) } } useEffect(() => { loadPending() }, []) const moderate = async (id, action) => { try { const payload = { note: String(notes[id] || '') } await window.axios.post(`/api/admin/uploads/${id}/${action}`, payload) setItems((prev) => prev.filter((item) => item.id !== id)) } catch (moderateError) { setError(moderateError?.response?.data?.message || `Failed to ${action} upload.`) } } return (

Pending Upload Moderation

{loading ?

Loading…

: null} {error ?

{error}

: null} {!loading && items.length === 0 ?

No pending uploads.

: null}
) }