All files / libs/tenants/assignments/teams/state/src/lib user-team-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 {
  UserTeamAssignmentsApiClient,
  type GetUserTeamAssignmentsOptions,
} from './api-client/user-team-assignments.api-client';
import { teamAssignmentsQueryKeys } from './queries.keys';
 
export const useUserTeamAssignments = (userId: string, options?: GetUserTeamAssignmentsOptions) =>
  useQuery({
    queryKey: teamAssignmentsQueryKeys.user(userId, options),
    queryFn: () => UserTeamAssignmentsApiClient.getUserTeamAssignments(userId, options),
    enabled: !!userId,
  });
 
export const useUserCurrentTeamAssignments = (
  userId: string,
  {
    referenceDate = new Date(),
    ...options
  }: Omit<GetUserTeamAssignmentsOptions, 'effectiveBetween'> & {
    referenceDate?: Date;
  } = {},
) => {
  const utcReferenceDate = useUtcDate(referenceDate);
 
  return useUserTeamAssignments(userId, {
    ...options,
    effectiveBetween: {
      start: startOfDay(utcReferenceDate),
      end: endOfDay(utcReferenceDate),
    },
  });
};
 
export const useUserCurrentAndFutureTeamAssignments = (
  userId: string,
  {
    referenceDate = new Date(),
    ...options
  }: Omit<GetUserTeamAssignmentsOptions, 'effectiveBetween'> & {
    referenceDate?: Date;
  } = {},
) => {
  const utcReferenceDate = useUtcDate(referenceDate);
 
  return useUserTeamAssignments(userId, {
    ...options,
    effectiveBetween: {
      start: startOfDay(utcReferenceDate),
    },
  });
};