Home / Function/ useCronJobsData() — supabase Function Reference

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,
    },
  }
}

Subdomains

Called By

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