edit referrals page, add referrals fetch functions

This commit is contained in:
smanylov
2026-02-07 14:31:04 +07:00
parent 7572c1ada2
commit 0ec7834cc5
11 changed files with 273 additions and 70 deletions
+18 -22
View File
@@ -17,38 +17,34 @@ import DropDownList from '@/app/components/DropDownList';
import { useQuery, useQueryClient } from '@tanstack/react-query';
import { toast } from 'sonner';
import { pluralize } from '@/app/lib/pluralize';
import { fetchReferralInvitees } from '@/app/actions/referralsActions';
type FileItem = {
type InviteesType = {
status?: string;
email?: string;
registrationData: number;
};
type ApiFile = {
status?: string;
type InviteType = {
active?: string;
email?: string;
registrationData: string;
regDate: number;
};
type ApiResponse = {
files?: ApiFile[];
};
export default function InvitationsTable() {
const {
data: testData,
data: referralInvitees,
isLoading,
isError,
error,
} = useQuery<ApiResponse, Error, FileItem[], ['testData']>({
queryKey: ['testData'],
} = useQuery<InviteType[], Error, InviteesType[], ['referralInvitees']>({
queryKey: ['referralInvitees'],
queryFn: () => {
return {}
return fetchReferralInvitees();
},
select: (data: ApiResponse): FileItem[] => {
if (!data?.files) return [
select: (data: InviteType[]): InviteesType[] => {
if (!data) return [
{
status: 'string1',
email: 'string1',
@@ -66,11 +62,11 @@ export default function InvitationsTable() {
}
];
return data.files.map((item: ApiFile) => {
return data.map((item: InviteType) => {
return {
status: 'string',
email: 'string',
registrationData: 40
status: item.active,
email: item.email,
registrationData: item.regDate
};
});
},
@@ -92,7 +88,7 @@ export default function InvitationsTable() {
const locale = useLocale();
// Определение колонок
const columns = useMemo<ColumnDef<FileItem>[]>(
const columns = useMemo<ColumnDef<InviteesType>[]>(
() => [
{
accessorKey: 'email',
@@ -207,7 +203,7 @@ export default function InvitationsTable() {
// Фильтрация по типу файла и дате
const filteredData = useMemo(() => {
let result = testData;
let result = referralInvitees;
if (!result) {
return [];
}
@@ -263,7 +259,7 @@ export default function InvitationsTable() {
}
return result;
}, [testData, statusFilter, dateFilter]);
}, [referralInvitees, statusFilter, dateFilter]);
useEffect(() => {
const currentPageRows = table.getRowModel().rows;