useCronJobsData() — supabase Function Reference
Architecture documentation for the useCronJobsData() function in CronJobsTab.useCronJobsData.ts from the supabase codebase.
Entity Profile
Dependency Diagram
graph TD d91e1395_336c_8cc8_1c97_273b3e7449f5["useCronJobsData()"] 4aa23104_375b_2179_f30c_8719c622dc59["CronjobsTab()"] 4aa23104_375b_2179_f30c_8719c622dc59 -->|calls| d91e1395_336c_8cc8_1c97_273b3e7449f5 style d91e1395_336c_8cc8_1c97_273b3e7449f5 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
apps/studio/components/interfaces/Integrations/CronJobs/CronJobsTab.useCronJobsData.ts lines 56–145
export function useCronJobsData({
projectRef,
connectionString,
searchQuery,
}: UseCronJobsDataParams): UseCronJobsDataResult {
const isProjectReady = !!projectRef
const {
data: cronJobsData,
error: cronJobsError,
isLoading: isCronJobsLoading,
isRefetching: isCronJobsRefetching,
isFetchingNextPage,
hasNextPage = false,
refetch: refetchCronJobs,
fetchNextPage,
} = useCronJobsInfiniteQuery(
{ projectRef, connectionString, searchTerm: searchQuery ?? undefined },
{
placeholderData: Boolean(searchQuery) ? keepPreviousData : undefined,
staleTime: Infinity,
}
)
const useMinimalQuery = cronJobsError?.message === COST_THRESHOLD_ERROR
const {
data: cronJobsMinimalData,
error: cronJobsMinimalError,
isLoading: isCronJobsMinimalLoading,
isRefetching: isCronJobsMinimalRefetching,
isFetchingNextPage: isFetchingNextPageMinimal,
hasNextPage: hasNextPageMinimal = false,
refetch: refetchCronJobsMinimal,
fetchNextPage: fetchNextPageMinimal,
} = useCronJobsMinimalInfiniteQuery(
{ projectRef, connectionString, searchTerm: searchQuery ?? undefined },
{
placeholderData: Boolean(searchQuery) ? keepPreviousData : undefined,
staleTime: Infinity,
enabled: useMinimalQuery,
}
)
const cronJobs = useMemo(() => {
if (useMinimalQuery) {
return cronJobsMinimalData?.pages.flatMap((page) => page) ?? []
} else {
return cronJobsData?.pages.flatMap((page) => page) ?? []
}
}, [useMinimalQuery, cronJobsData?.pages, cronJobsMinimalData?.pages])
// Fetch count - gated on cron.job table size
// Always fetch the estimate first (it's fast since it uses pg_stat)
const {
data: estimatedCount,
isPending: isLoadingEstimatedCount,
isError: isEstimatedCountError,
} = useCronJobsCountEstimateQuery({ projectRef, connectionString }, { enabled: isProjectReady })
const hasLargeCronJobsTable =
typeof estimatedCount === 'number' && estimatedCount > CRON_JOBS_THRESHOLD
// Exact count is enabled when the cron.job table is small enough
const isCountQueryEnabled =
isProjectReady && !isLoadingEstimatedCount && !isEstimatedCountError && !hasLargeCronJobsTable
const { data: exactCount, isPending: isLoadingExactCount } = useCronJobsCountQuery(
{ projectRef, connectionString },
{ enabled: isCountQueryEnabled }
)
return {
grid: {
rows: cronJobs,
error: useMinimalQuery ? cronJobsMinimalError : cronJobsError,
isLoading: useMinimalQuery ? isCronJobsMinimalLoading : isCronJobsLoading,
isRefetching: useMinimalQuery ? isCronJobsMinimalRefetching : isCronJobsRefetching,
isFetchingNextPage: useMinimalQuery ? isFetchingNextPageMinimal : isFetchingNextPage,
hasNextPage: useMinimalQuery ? hasNextPageMinimal : hasNextPage,
isMinimal: useMinimalQuery,
refetch: useMinimalQuery ? refetchCronJobsMinimal : refetchCronJobs,
fetchNextPage: useMinimalQuery ? fetchNextPageMinimal : fetchNextPage,
},
count: {
value: isCountQueryEnabled ? exactCount : estimatedCount,
isEstimate: !isCountQueryEnabled,
isLoading: isCountQueryEnabled ? isLoadingExactCount : isLoadingEstimatedCount,
},
}
}
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does useCronJobsData() do?
useCronJobsData() is a function in the supabase codebase.
What calls useCronJobsData()?
useCronJobsData() is called by 1 function(s): CronjobsTab.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free