"use client"; import { getCookiesDecrypt } from "@/lib/utils"; import { listDataAll } from "@/service/content/content"; import { ColumnFiltersState, PaginationState, SortingState, VisibilityState, } from "@tanstack/react-table"; import { DockIcon, ImageIcon, MicIcon, YoutubeIcon } from "lucide-react"; import { useRouter, useSearchParams } from "next/navigation"; import React from "react"; import search from "../../../app/chat/components/search"; import { useTranslations } from "next-intl"; type StatusFilter = string[]; interface Counts { images: number; audiovisual: number; text: number; audio: number; } const RecentActivity: React.FC = () => { const t = useTranslations("Menu"); const router = useRouter(); const searchParams = useSearchParams(); const [dataTable, setDataTable] = React.useState([]); const [totalData, setTotalData] = React.useState(1); const [sorting, setSorting] = React.useState([]); const [columnFilters, setColumnFilters] = React.useState( [] ); const [columnVisibility, setColumnVisibility] = React.useState({}); const [rowSelection, setRowSelection] = React.useState({}); const [pagination, setPagination] = React.useState({ pageIndex: 0, pageSize: 10, }); const [page, setPage] = React.useState(1); const [totalPage, setTotalPage] = React.useState(1); const [limit, setLimit] = React.useState(10); const [search, setSearch] = React.useState(""); const userId = getCookiesDecrypt("uie"); const userLevelId = getCookiesDecrypt("ulie"); const [categories, setCategories] = React.useState(); const [categoryFilter, setCategoryFilter] = React.useState([]); const [statusFilter, setStatusFilter] = React.useState([]); const [startDateString, setStartDateString] = React.useState(""); const [endDateString, setEndDateString] = React.useState(""); const [filterByCreator, setFilterByCreator] = React.useState(""); const [fileTypeFilter, setFileTypeFilter] = React.useState([]); const [filterBySource, setFilterBySource] = React.useState(""); const [counts, setCounts] = React.useState({ images: 0, audiovisual: 0, text: 0, audio: 0, }); const roleId = getCookiesDecrypt("urie"); React.useEffect(() => { const pageFromUrl = searchParams?.get("page"); if (pageFromUrl) { setPage(Number(pageFromUrl)); } }, [searchParams]); React.useEffect(() => { fetchData(); }, [page, limit]); async function fetchData() { try { const isForSelf = Number(roleId) === 4; const res = await listDataAll( isForSelf, !isForSelf, page - 1, limit, search, fileTypeFilter.sort().join(","), categoryFilter.sort().join(","), statusFilter.sort().join(","), statusFilter.sort().join(",").includes("1") ? userLevelId : "", filterByCreator, filterBySource, startDateString, endDateString ); const data = res?.data?.data; const { content } = data || []; // Calculate counts for each typeId const newCounts: Counts = { images: content.filter((item: any) => item.typeId === 1).length, audiovisual: content.filter((item: any) => item.typeId === 2).length, text: content.filter((item: any) => item.typeId === 3).length, audio: content.filter((item: any) => item.typeId === 4).length, }; setDataTable(content); setCounts(newCounts); } catch (error) { console.error("Error fetching tasks:", error); } } return (

{counts.images} {t("image", { defaultValue: "Image" })}

{counts.audiovisual} {t("video", { defaultValue: "Video" })}

{counts.text} {t("text", { defaultValue: "Text" })}

{counts.audio} {t("audio", { defaultValue: "Audio" })}

); }; export default RecentActivity;