All files / libs/assignments/quotas/state/src/lib user-quota-assignments.queries.ts

100% Statements 47/47
100% Branches 7/7
100% Functions 6/6
100% Lines 41/41

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 38 39 40 41 421x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 142x 146x 122x 122x 122x 122x 122x 122x 122x 1x 1x 142x 144x 144x 144x 144x 144x 144x 144x 144x 144x 144x 144x 120x 120x 120x 120x 120x 120x 2x  
import { useQuery } from '@tanstack/react-query';
import { endOfYear, startOfYear } from 'date-fns';
 
import { useUtcDate } from '@amalia/ext/react/hooks';
 
import {
  UserQuotaAssignmentsApiClient,
  type GetUserQuotaAssignmentsOptions,
} from './api-client/user-quota-assignments.api-client';
import { quotaAssignmentsQueryKeys } from './queries.keys';
 
export const useUserQuotaAssignmentsByFrequency = (userId: string, options?: GetUserQuotaAssignmentsOptions) =>
  useQuery({
    queryKey: quotaAssignmentsQueryKeys.ofUser.list(
      userId,
      options?.effectiveBetween?.start,
      options?.effectiveBetween?.end,
    ),
    queryFn: () => UserQuotaAssignmentsApiClient.getUserQuotaAssignments(userId, options),
    enabled: !!userId,
  });
 
export const useUserCurrentYearQuotaAssignmentsByFrequency = (
  userId: string,
  {
    referenceDate = new Date(),
    ...options
  }: Omit<GetUserQuotaAssignmentsOptions, 'effectiveBetween'> & {
    referenceDate?: Date;
  } = {},
) => {
  const utcReferenceDate = useUtcDate(referenceDate);
 
  return useUserQuotaAssignmentsByFrequency(userId, {
    ...options,
    effectiveBetween: {
      start: startOfYear(utcReferenceDate),
      end: endOfYear(utcReferenceDate),
    },
  });
};