Re_Figma_Code/src/pages/MyRequests/hooks/useMyRequestsStats.ts

29 lines
928 B
TypeScript

/**
* Hook for calculating My Requests statistics
*/
import { useMemo } from 'react';
import { MyRequest, MyRequestsStats } from '../types/myRequests.types';
interface UseMyRequestsStatsOptions {
requests: MyRequest[];
totalRecords?: number;
}
export function useMyRequestsStats({ requests, totalRecords }: UseMyRequestsStatsOptions): MyRequestsStats {
const stats = useMemo(() => {
return {
total: totalRecords || requests.length,
pending: requests.filter((r) => r.status === 'pending').length,
paused: requests.filter((r) => r.status === 'paused').length,
approved: requests.filter((r) => r.status === 'approved').length,
rejected: requests.filter((r) => r.status === 'rejected').length,
draft: requests.filter((r) => r.status === 'draft').length,
closed: requests.filter((r) => r.status === 'closed').length,
};
}, [requests, totalRecords]);
return stats;
}