'use client' import { useState } from 'react' import type { PaginationListColumnType } from '@/types' import PaginatedList from '@/components/PaginatedList' import PageNavbar from '@/components/layouts/PageNavbar' import Button from '@/components/formElements/Button' import CloseCircleIcon from '@/components/icons/CloseCircleIcon' import CloseIcon from '@/components/icons/CloseIcon' import FileCheckIcon from '@/components/icons/FileCheckIcon' import Modal from '@/components/modals/Modal' import AdminTableActions from '@/components/ui/AdminTableActions' import AdminTableViewButton from '@/components/ui/AdminTableViewButton' import StatusChip from '@/components/ui/StatusChip' import axiosInstance from '@/config/axios' import { APP_ROUTES } from '@/constants/routes' import useAlertModal from '@/hooks/useAlertModal' import useAdminMutation from '@/hooks/useAdminMutation' import { formatPersonName, coerceToString } from '@/helpers' import { formatIranianMobile, formatPersianDate, truncateValue } from '@/lib/formatters' import { getReportStatus, REPORT_STATUS_FILTER_ITEMS, type ReportStatus } from '@/constants/status' import { API_ROUTES } from '@/services/config' const columns: PaginationListColumnType[] = [ { field: 'reporterId', label: 'گزارشدهنده', filterable: true, type: 'text', sortable: false, }, { field: 'reportedId', label: 'کاربر گزارششده', filterable: true, type: 'text', sortable: false, }, { field: 'reason', label: 'دلیل', filterable: false, sortable: false, }, { field: 'description', label: 'توضیحات', filterable: false, sortable: false, }, { field: 'status', label: 'وضعیت', filterable: true, type: 'select', sortable: true, filterItems: REPORT_STATUS_FILTER_ITEMS, }, { field: 'createdAt', label: 'تاریخ ثبت', filterable: false, sortable: true, type: 'dateFromTo', }, { field: 'actions', label: 'عملیات', }, ] interface ReportReasonSummary { id: number code: string label: string sortOrder: number } interface ReportUserSummary { mobile: string firstName: string | null lastName: string | null } interface UserReportRow { id: string reporterId: string reportedId: string reasonId?: number | null description?: string | null status: ReportStatus reviewedAt?: string | null reviewedBy?: string | null createdAt: string reason?: ReportReasonSummary | null reporter: ReportUserSummary reported: ReportUserSummary [key: string]: unknown } const UserPartyCell = ({ summary }: { summary: ReportUserSummary }) => (
{selectedDescription}