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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | 53x 2x 1x 53x 2x 53x 2x 2x 53x 53x | import { useQuery } from '@tanstack/react-query';
import { useIntl } from 'react-intl';
import { quotaAssignmentsQueryKeys } from '@amalia/assignments/quotas/state';
import { useMutation } from '@amalia/ext/react-query';
import { toError } from '@amalia/ext/typescript';
import { type Plan } from '@amalia/payout-definition/plans/types';
import { PlanAssignmentsApiClient } from './api-client/plan-assignments.api-client';
import { planAssignmentsMutationKeys, planAssignmentsQueryKeys } from './queries.keys';
export const usePlanAssignments = <TRelations extends 'user'[] = []>({
planId,
relations = [] as unknown as TRelations,
}: {
planId?: Plan['id'];
relations?: TRelations;
}) =>
useQuery({
queryKey: planAssignmentsQueryKeys.plan(planId!, relations),
queryFn: () => PlanAssignmentsApiClient.getPlanAssignments({ planId: planId!, relations }),
enabled: !!planId,
});
export const useUpsertPlanAssignmentsDryRun = () =>
useMutation({
mutationKey: planAssignmentsMutationKeys.upsertDryRun(),
mutationFn: PlanAssignmentsApiClient.upsertPlanAssignmentsDryRun,
});
export const useUpsertPlanAssignments = () => {
const { formatMessage } = useIntl();
return useMutation({
mutationKey: planAssignmentsMutationKeys.upsert(),
mutationFn: PlanAssignmentsApiClient.upsertPlanAssignments,
meta: {
successMessage: (_, assignmentsToUpsert) =>
formatMessage(
{
defaultMessage: '{count, plural, one {Assignment} other {# assignments}} created successfully.',
},
{ count: assignmentsToUpsert.length },
),
invalidateQueries: [planAssignmentsQueryKeys.all(), quotaAssignmentsQueryKeys.all()],
errorMessage: (err, assignmentsToUpsert) =>
formatMessage(
{
defaultMessage: '{count, plural, one {Assignment} other {# assignments}} could not be created: {error}.',
},
{ count: assignmentsToUpsert.length, error: toError(err).message },
),
},
});
};
export const useUpdatePlanAssignments = () => {
const { formatMessage } = useIntl();
return useMutation({
mutationKey: planAssignmentsMutationKeys.update(),
mutationFn: PlanAssignmentsApiClient.updatePlanAssignments,
meta: {
invalidateQueries: [planAssignmentsQueryKeys.all(), quotaAssignmentsQueryKeys.all()],
successMessage: (_, assignmentsToUpdate) =>
formatMessage(
{
defaultMessage: '{assignmentsCount, plural, one {Assignment} other {# assignments}} updated successfully.',
},
{ assignmentsCount: assignmentsToUpdate.length },
),
errorMessage: (error, assignmentsToUpdate) =>
formatMessage(
{
defaultMessage:
'{assignmentsCount, plural, one {Assignment} other {# assignments}} could not be updated: {errorMessage}.',
},
{ errorMessage: toError(error).message, assignmentsCount: assignmentsToUpdate.length },
),
},
});
};
export const useDeletePlanAssignments = () => {
const { formatMessage } = useIntl();
return useMutation({
mutationKey: planAssignmentsMutationKeys.delete(),
mutationFn: PlanAssignmentsApiClient.deletePlanAssignments,
meta: {
invalidateQueries: [planAssignmentsQueryKeys.all(), quotaAssignmentsQueryKeys.all()],
successMessage: (_, assignmentsToDelete) =>
formatMessage(
{
defaultMessage: '{assignmentsCount, plural, one {Assignment} other {# assignments}} deleted successfully.',
},
{ assignmentsCount: assignmentsToDelete.length },
),
errorMessage: (error, assignmentsToDelete) =>
formatMessage(
{
defaultMessage:
'{assignmentsCount, plural, one {Assignment} other {# assignments}} could not be deleted: {errorMessage}.',
},
{ errorMessage: toError(error).message, assignmentsCount: assignmentsToDelete.length },
),
},
});
};
|