All files / libs/assignments/quotas/components/src/lib/user-quota-assignments-table/hooks useUserQuotaAssignmentsTableColumns.tsx

16.66% Statements 1/6
0% Branches 0/3
0% Functions 0/4
16.66% Lines 1/6

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37                    54x                                                    
import { useMemo } from 'react';
 
import { FIXED_START_DATE } from '@amalia/assignments/quotas/types';
import { type PeriodFrequencyEnum } from '@amalia/payout-definition/periods/types';
import { type UserContract } from '@amalia/tenants/users/types';
 
import { useQuotaAssignmentColumnsForFrequency } from '../../quota-assignments-datagrid/hooks/useQuotaAssignmentColumnsForFrequency';
import { QuotaUsersAssignmentsValueCell } from '../../quota-assignments-datagrid/quota-users-assignments-data-grid/cells/value/QuotaUsersAssignmentsValueCell';
import { columnHelper } from '../UserQuotaAssignmentsBaseTable';
 
export const useUserQuotaAssignmentsTableColumns = (
  user: Pick<UserContract, 'currency' | 'id'>,
  frequency: PeriodFrequencyEnum,
  referenceDate = new Date(),
) => {
  const columnsForFrequency = useQuotaAssignmentColumnsForFrequency(frequency, referenceDate);
 
  return useMemo(
    () =>
      columnsForFrequency.map(({ column, startDate, endDate }) =>
        columnHelper.display({
          ...column,
          cell: ({ row }) => (
            <QuotaUsersAssignmentsValueCell
              assignment={row.assignmentsByStartDate[startDate ?? FIXED_START_DATE]}
              endDate={endDate}
              quota={row.quota}
              startDate={startDate}
              user={user}
            />
          ),
        }),
      ),
    [columnsForFrequency, user],
  );
};