56 lines
1.6 KiB
TypeScript
56 lines
1.6 KiB
TypeScript
|
|
"use client";
|
||
|
|
|
||
|
|
import { useEffect } from "react";
|
||
|
|
import { useQueryClient } from "@tanstack/react-query";
|
||
|
|
|
||
|
|
import categoryApi from "@/shared/services/category";
|
||
|
|
import classificationApi from "@/shared/services/classification";
|
||
|
|
import mapProjectionSystemApi from "@/shared/services/map-projection-system";
|
||
|
|
import organizationApi from "@/shared/services/organization";
|
||
|
|
import mapSourceApi from "@/shared/services/map-source";
|
||
|
|
import { useAuthSession } from "@/shared/hooks/use-session";
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Prefetches admin reference data (options) once the user session is ready.
|
||
|
|
* This ensures select options are available before opening edit/add forms,
|
||
|
|
* so forms can immediately display selected values.
|
||
|
|
*/
|
||
|
|
export default function RefDataBootstrap() {
|
||
|
|
const qc = useQueryClient();
|
||
|
|
const { isAuthenticated } = useAuthSession();
|
||
|
|
|
||
|
|
useEffect(() => {
|
||
|
|
if (!isAuthenticated) return;
|
||
|
|
|
||
|
|
const staleTime = 5 * 60 * 1000; // 5 minutes
|
||
|
|
|
||
|
|
qc.prefetchQuery({
|
||
|
|
queryKey: ["projectionSystems"],
|
||
|
|
queryFn: () => mapProjectionSystemApi.getMapProjectionSystems(),
|
||
|
|
staleTime,
|
||
|
|
});
|
||
|
|
qc.prefetchQuery({
|
||
|
|
queryKey: ["categories"],
|
||
|
|
queryFn: () => categoryApi.getCategories(),
|
||
|
|
staleTime,
|
||
|
|
});
|
||
|
|
qc.prefetchQuery({
|
||
|
|
queryKey: ["classifications"],
|
||
|
|
queryFn: () => classificationApi.getClassifications(),
|
||
|
|
staleTime,
|
||
|
|
});
|
||
|
|
qc.prefetchQuery({
|
||
|
|
queryKey: ["organizations"],
|
||
|
|
queryFn: () => organizationApi.getOrganizations(),
|
||
|
|
staleTime,
|
||
|
|
});
|
||
|
|
qc.prefetchQuery({
|
||
|
|
queryKey: ["map-sources"],
|
||
|
|
queryFn: () => mapSourceApi.getMapSources(),
|
||
|
|
staleTime,
|
||
|
|
});
|
||
|
|
}, [qc, isAuthenticated]);
|
||
|
|
|
||
|
|
return null;
|
||
|
|
}
|