Skip to content

Commit d3c4de5

Browse files
authored
AP parent deletion (#569)
1 parent 7225431 commit d3c4de5

File tree

3 files changed

+37
-2
lines changed

3 files changed

+37
-2
lines changed

compliance-web/src/components/App/Inspections/Profile/Enforcements/AdministrativePenalty/AdministrativePenaltyUpdateModal.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import ControlledAutoComplete from "@/components/Shared/Controlled/ControlledAut
1212
import {
1313
useUpdateAdministrativePenalty,
1414
useDeleteAdministrativePenalty,
15+
useAdministrativePenaltyLinksData,
1516
} from "@/hooks/useAdministrativePenalties";
1617
import {
1718
AdministrativePenalty,
@@ -163,8 +164,13 @@ const AdministrativePenaltyUpdateModal: FC<
163164
const { mutate: deleteAdministrativePenalty, isPending: isPendingDelete } =
164165
useDeleteAdministrativePenalty(onDeleteSuccess);
165166

166-
// Check if AP is linked to other inspections
167-
const isLinkedToOtherInspections = administrativePenalty.inspection_id !== inspectionData.id;
167+
// Fetch linked inspections and requirements for this AP
168+
const { data: linkedData } = useAdministrativePenaltyLinksData(administrativePenalty.id);
169+
170+
// Check if AP is linked to other inspections by comparing inspection IDs
171+
const isLinkedToOtherInspections = linkedData?.some(
172+
(linkData) => linkData.inspection.id !== inspectionData.id
173+
) ?? false;
168174

169175
const handleSubmitForm = useCallback(
170176
(data: AdministrativePenaltyUpdateFormType) => {

compliance-web/src/hooks/useAdministrativePenalties.tsx

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { useMutation, useQuery } from "@tanstack/react-query";
33
import {
44
AdministrativePenalty,
55
AdministrativePenaltyAPIData,
6+
AdministrativePenaltyLink,
67
} from "@/models/AdministrativePenalty";
78

89
const fetchAdministrativePenalties = (
@@ -31,6 +32,14 @@ const fetchAdministrativePenaltyByNumber = (
3132
});
3233
};
3334

35+
const fetchAdministrativePenaltyLinks = (
36+
administrativePenaltyId: number
37+
): Promise<AdministrativePenaltyLink[]> => {
38+
return request({
39+
url: `/administrative-penalties/${administrativePenaltyId}/links`
40+
});
41+
};
42+
3443
const createAdministrativePenalty = ({
3544
administrativePenalty,
3645
}: {
@@ -104,6 +113,18 @@ export const useAdministrativePenaltiesData = (
104113
});
105114
};
106115

116+
export const useAdministrativePenaltyLinksData = (
117+
administrativePenaltyId: number,
118+
{ isStaleInfinate = true }: { isStaleInfinate?: boolean } = {}
119+
) => {
120+
return useQuery({
121+
queryKey: ["administrative-penalty-links", administrativePenaltyId],
122+
queryFn: () => fetchAdministrativePenaltyLinks(administrativePenaltyId),
123+
enabled: !!administrativePenaltyId,
124+
staleTime: isStaleInfinate ? Infinity : 0,
125+
});
126+
};
127+
107128
export const useAdministrativePenaltiesByCaseFileData = (
108129
caseFileId: number,
109130
{ isStaleInfinate = true }: { isStaleInfinate?: boolean } = {}

compliance-web/src/models/AdministrativePenalty.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { Inspection } from './Inspection';
2+
import { InspectionRequirement } from './InspectionRequirement';
13
import { Option } from './common';
24

35
export interface AdministrativePenalty {
@@ -34,3 +36,9 @@ export interface AdministrativePenaltyAPIData {
3436
inspection_requirement_ids: number[];
3537
administrative_penalty_number?: string;
3638
}
39+
40+
export interface AdministrativePenaltyLink {
41+
inspection: Inspection;
42+
requirements: InspectionRequirement[];
43+
}
44+

0 commit comments

Comments
 (0)