All files / libs/assignments/plans/state/src/lib user-plan-assignments.queries.ts

100% Statements 56/56
100% Branches 4/4
100% Functions 4/4
100% Lines 56/56

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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 571x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 6x 6x 6x 6x 1x 1x 1x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 1x 1x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x  
import { useQuery } from '@tanstack/react-query';
import { endOfDay, startOfDay } from 'date-fns';
 
import { useUtcDate } from '@amalia/ext/react/hooks';
 
import {
  UserPlanAssignmentsApiClient,
  type GetUserPlanAssignmentsOptions,
} from './api-client/user-plan-assignments.api-client';
import { planAssignmentsQueryKeys } from './queries.keys';
 
export const useUserPlanAssignments = (userId: string, options?: GetUserPlanAssignmentsOptions) =>
  useQuery({
    queryKey: planAssignmentsQueryKeys.user(userId, options),
    queryFn: () => UserPlanAssignmentsApiClient.getUserPlanAssignments(userId, options),
    enabled: !!userId,
  });
 
export const useUserCurrentPlanAssignments = (
  userId: string,
  {
    referenceDate = new Date(),
    ...options
  }: Omit<GetUserPlanAssignmentsOptions, 'effectiveBetween'> & {
    referenceDate?: Date;
  } = {},
) => {
  const utcReferenceDate = useUtcDate(referenceDate);
 
  return useUserPlanAssignments(userId, {
    ...options,
    effectiveBetween: {
      start: startOfDay(utcReferenceDate),
      end: endOfDay(utcReferenceDate),
    },
  });
};
 
export const useUserCurrentAndFuturePlanAssignments = (
  userId: string,
  {
    referenceDate = new Date(),
    ...options
  }: Omit<GetUserPlanAssignmentsOptions, 'effectiveBetween'> & {
    referenceDate?: Date;
  } = {},
) => {
  const utcReferenceDate = useUtcDate(referenceDate);
 
  return useUserPlanAssignments(userId, {
    ...options,
    effectiveBetween: {
      start: startOfDay(utcReferenceDate),
    },
  });
};