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 | import { useMemo } from 'react'; import { isAssignmentEffective } from '@amalia/assignments/common/shared'; import { usePlanAssignments } from '@amalia/assignments/plans/state'; import { type Period } from '@amalia/payout-definition/periods/types'; import { formatUserFullName } from '@amalia/tenants/users/types'; export const useActivePlanAssignmentInPeriod = (planId: string, period: Period | null) => { const { data: planAssignments } = usePlanAssignments({ planId, relations: ['user'], }); // Filter assignments, only show users that are currently assigned. return useMemo( () => period && planAssignments ? planAssignments .filter((pa) => isAssignmentEffective(pa, period)) .toSorted((a, b) => formatUserFullName(a.user).localeCompare(formatUserFullName(b.user))) : null, [planAssignments, period], ); }; |