-
- {'row.original.id'}
-
+
+
+ {cutFileName(row.original.fileName)}
),
- enableColumnFilter: false,
+ enableColumnFilter: true,
},
{
- accessorKey: 'userName',
+ accessorKey: 'userId',
header: ({ column }) => (
- Пользователь
+ User ID
-
- ),
- cell: ({ row }) => {
- return (
-
- {'row.original.userName'}
-
- )
- },
- },
- {
- accessorKey: 'userEmail',
- header: ({ column }) => (
-
-
- email
-
-
-
- ),
- cell: ({ row }) => {
- return (
-
- {'row.original.userEmail'}
-
- )
- },
- },
- {
- accessorKey: 'verificationStatus',
- header: ({ column }) => (
-
-
- статус KYC
-
-
),
cell: ({ row }) => (
- {'row.original.verificationStatus'}
+ {row.original.userId}
),
},
{
- accessorKey: 'tariff',
+ accessorKey: 'status',
header: ({ column }) => (
- Подписка
+ Статус
),
- cell: ({ row }) => {
- return (
-
- {'row.original.tariff'}
-
- )
- },
- enableColumnFilter: false,
+ cell: ({ row }) => (
+
+
+
+ ),
},
{
- accessorKey: 'tokens',
+ accessorKey: 'moderationInfo.hasActiveAppeal',
header: ({ column }) => (
- Токены
+ Апелляция
),
- cell: ({ row }) => {
- return (
-
- {'row.original.tokens'}
-
- )
- },
- }, {
- accessorKey: 'userSubscription',
- header: ({ column }) => (
-
-
- Дата регистрации
-
-
+ cell: ({ row }) => (
+
+ {row.original.moderationInfo.hasActiveAppeal ? (
+ Активна
+ ) : (
+ Нет
+ )}
),
- cell: ({ row }) => {
- return (
-
- <>
- {formatDate(0)}
-
- {formatDateTime(0)}
- >
-
- )
- },
}
- ]
+ ];
if (permission === 3) {
allColumns.push({
@@ -393,8 +247,9 @@ export default function ContentModerationTable({ permission }: { permission: num
@@ -407,37 +262,18 @@ export default function ContentModerationTable({ permission }: { permission: num
}
return allColumns;
- }, [permission]);
+ }, [permission, handleViewFile, t]);
- // Фильтрация по типу файла и дате
+ // Фильтрация данных (клиентская фильтрация, если нужно)
const filteredData = useMemo(() => {
- /* let result = tableData?.users; */
- let result = [];
- return []
- if (!result) {
+ if (!moderationData?.files) {
return [];
}
- if (searchQuery.trim()) {
- const query = searchQuery.toLowerCase().trim();
- result = result.filter((item: any) => {
- // Ищем по всем строковым полям
- return Object.keys(item).some(key => {
- const value = item[key];
- if (typeof value === 'string') {
- return value.toLowerCase().includes(query);
- }
- // Если нужно искать по числам или другим типам
- if (typeof value === 'number' || typeof value === 'boolean') {
- return value.toString().toLowerCase().includes(query);
- }
- return false;
- });
- });
- }
+ let result = [...moderationData.files];
return result;
- }, [tableData, searchQuery]);
+ }, [moderationData]);
useEffect(() => {
const currentPageRows = table.getRowModel().rows;
@@ -460,8 +296,7 @@ export default function ContentModerationTable({ permission }: { permission: num
manualPagination: true,
manualSorting: true,
manualFiltering: true,
- /* pageCount: tableData?.pagination?.totalPages, */
- pageCount: 0,
+ pageCount: moderationData?.totalPages || 0,
onPaginationChange: setPagination,
onSortingChange: (updater) => {
const newSorting = typeof updater === 'function' ? updater(sorting) : updater;
@@ -473,31 +308,28 @@ export default function ContentModerationTable({ permission }: { permission: num
getPaginationRowModel: getPaginationRowModel()
});
+ if (isError) {
+ return (
+
+ Ошибка загрузки данных: {error?.message || 'Неизвестная ошибка'}
+
+ );
+ }
+
return (
-
- {openWindowChildren}
+
+
+
{/* Фильтры */}
-
{t('items-per-page')}:
{[5, 10, 20, 50, 100].map(pageSize => (
@@ -516,9 +348,7 @@ export default function ContentModerationTable({ permission }: { permission: num
{table.getHeaderGroups().map(headerGroup => (
{headerGroup.headers.map(header => (
- |
+ |
{header.isPlaceholder
? null
: typeof header.column.columnDef.header === 'function'
@@ -530,9 +360,15 @@ export default function ContentModerationTable({ permission }: { permission: num
))}
|
- {table.getRowModel().rows.length > 0 ? (
+ {isLoading ? (
+
+ |
+ Загрузка...
+ |
+
+ ) : table.getRowModel().rows.length > 0 ? (
table.getRowModel().rows.map(row => (
-
+
{row.getVisibleCells().map(cell => (
|
{typeof cell.column.columnDef.cell === 'function'
@@ -544,7 +380,7 @@ export default function ContentModerationTable({ permission }: { permission: num
))
) : (
|
- |
+ |
{t('no-data-for-selected-filters')}
|
@@ -554,16 +390,16 @@ export default function ContentModerationTable({ permission }: { permission: num
{/* Пагинация */}
-{/*
+
{t('page')}{' '}
- {(tableData?.pagination?.currentPage ?? 0) + 1} {t('out-of')} {tableData?.pagination?.totalPages ?? 1}
+ {(moderationData?.currentPage ?? 0) + 1} {t('out-of')} {moderationData?.totalPages ?? 1}
- | {t('shown')} {table.getRowModel().rows.length} {t('out-of')} {tableData?.pagination?.totalElements ?? 0}
+ | {t('shown')} {table.getRowModel().rows.length} {t('out-of')} {moderationData?.totalCount ?? 0}
@@ -585,7 +421,7 @@ export default function ContentModerationTable({ permission }: { permission: num
{(() => {
- const totalPages = tableData?.pagination?.totalPages;
+ const totalPages = moderationData?.totalPages;
if (!totalPages || totalPages === 0) return null;
const currentPageIndex = table.getState().pagination.pageIndex;
@@ -626,7 +462,7 @@ export default function ContentModerationTable({ permission }: { permission: num
-
*/}
+
);
}
\ No newline at end of file