added rejected posts for admin

This commit is contained in:
SlimusMinus
2026-10-06 02:06:44 +03:00
parent 9ccad319cd
commit 0074e51829
6 changed files with 76 additions and 29 deletions

View File

@@ -141,6 +141,16 @@ export default function Sidebar({
>
{NavIcons.rules()} {t('adminPanel.postsNav')}
</button>
<button
type="button"
className={`f-sb-item${activeNav === "admin-posts-rejected" ? " active" : ""}`}
onClick={() => {
navigate("/admin/ads?tab=rejected");
onClose();
}}
>
{NavIcons.rules()} {t('adminPanel.postsRejectedNav')}
</button>
</>
)}
</nav>

View File

@@ -7,6 +7,7 @@ import ImageViewer from "../ImageViewer";
import Toast from "../Toast";
import {
getAdminPosts,
getAdminRejectedPosts,
deleteAdminPost,
updateAdminPostStatus,
} from "../../api/adminContentApi";
@@ -48,8 +49,9 @@ function authorLabelOf(post) {
* Разметка рассчитана на то, что страница уже нарисовала .admp > .admp-inner,
* поэтому собственного скролл-контейнера у вкладки нет.
*/
export default function PostsTab({ isAdmin }) {
export default function PostsTab({ isAdmin, mode = "all" }) {
const { t } = useTranslation();
const isRejectedMode = mode === "rejected";
const [posts, setPosts] = useState([]);
const [page, setPage] = useState(0);
@@ -86,7 +88,8 @@ export default function PostsTab({ isAdmin }) {
setError("");
try {
const result = await getAdminPosts({ page: pageNum, size: PAGE_SIZE, search, type: typeFilter, status: statusFilter });
const fetcher = isRejectedMode ? getAdminRejectedPosts : getAdminPosts;
const result = await fetcher({ page: pageNum, size: PAGE_SIZE, search, type: typeFilter, status: statusFilter });
setPosts((prev) => (append ? [...prev, ...result.items] : result.items));
setHasMore(!result.last);
setPage(pageNum);
@@ -98,7 +101,7 @@ export default function PostsTab({ isAdmin }) {
setLoading(false);
setLoadingMore(false);
}
}, [isAdmin, search, typeFilter, statusFilter, t]);
}, [isAdmin, search, typeFilter, statusFilter, t, isRejectedMode]);
// Первичная загрузка + перезагрузка при смене фильтров
useEffect(() => {