diff --git a/app/src/admin/ReviewPanel.jsx b/app/src/admin/ReviewPanel.jsx new file mode 100644 index 0000000..aa94a56 --- /dev/null +++ b/app/src/admin/ReviewPanel.jsx @@ -0,0 +1,27 @@ +import { useState, useEffect } from 'react'; +import { useToast, pillBtn } from '../../teknav-ui.jsx'; +import { adminApi } from '../lib/admin-api.js'; +import { BRAND, PanelState } from './Shared.jsx'; + +function ReviewsPanel() { + const [items, setItems] = useState([]); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(false); + const load = () => adminApi.listReviews().then(setItems).catch(() => setError(true)).finally(() => setLoading(false)); + useEffect(() => { load(); }, []); + const update = async (articleId, status) => { await adminApi.updateReview(articleId, { status }); load(); }; + if (loading || error || items.length === 0) return ; + return items.map(item => ( +
+
{item.article?.title}
+
{item.status} · {item.reviewer?.name ?? 'بدون بازبین'}
+
+ + + +
+
+ )); +} + +export { ReviewsPanel };