fix: cache invalidation

This commit is contained in:
Nathnael
2026-07-16 07:17:22 +00:00
parent 08faf56c4f
commit 5f6d8f9294
2 changed files with 17 additions and 3 deletions

View File

@@ -110,6 +110,13 @@ export default function ContractClearanceDetailPage() {
const { data: bookingMilestones, refetch: refetchBookingMilestones } =
useBookingMilestones(linkedBookingId);
// react-query's imperative refetch() ignores `enabled`, so calling it while
// linkedBookingId is still undefined (pre-booking clearance) would fire
// GET /contracts/bookings/undefined/milestones → 400 (uuid expected). Guard it.
const refetchBookingMilestonesIfLinked = () => {
if (linkedBookingId) void refetchBookingMilestones();
};
if (isLoading) {
return (
<PageContainer>
@@ -261,7 +268,7 @@ export default function ContractClearanceDetailPage() {
onChanged={() => {
void refetch();
void refetchContract();
void refetchBookingMilestones();
refetchBookingMilestonesIfLinked();
}}
/>
</Grid.Col>
@@ -279,7 +286,7 @@ export default function ContractClearanceDetailPage() {
roleMode="ET"
onChanged={() => {
void refetch();
void refetchBookingMilestones();
refetchBookingMilestonesIfLinked();
}}
onViewFile={view}
onDownloadFile={(f) => void downloadBookingFile(f.id, f.name)}

View File

@@ -105,6 +105,13 @@ export default function GlClearanceDetailPage() {
const { data: bookingMilestones, refetch: refetchBookingMilestones } =
useBookingMilestones(linkedBookingId);
// react-query's imperative refetch() ignores `enabled`, so calling it while
// linkedBookingId is still undefined (pre-booking clearance) would fire
// GET /contracts/bookings/undefined/milestones → 400 (uuid expected). Guard it.
const refetchBookingMilestonesIfLinked = () => {
if (linkedBookingId) void refetchBookingMilestones();
};
if (isLoading) {
return (
<PageContainer>
@@ -275,7 +282,7 @@ export default function GlClearanceDetailPage() {
onUploadRoRequest={() => setUploadKind("ro")}
onChanged={() => {
void refetch();
void refetchBookingMilestones();
refetchBookingMilestonesIfLinked();
}}
onViewFile={view}
onDownloadFile={(f) => void downloadBookingFile(f.id, f.name)}