import { lazy } from "react" import { useIntersectionObserver } from "@/lib/use-intersection-observer" import { cn } from "@/lib/utils" import { ResponseChart, LossChart } from "./charts/probes-charts" import type { SystemData } from "./use-system-data" import { $chartTime } from "@/lib/stores" import { useStore } from "@nanostores/react" import { useNetworkProbesData } from "@/lib/use-network-probes" const ContainersTable = lazy(() => import("../../containers-table/containers-table")) export function LazyContainersTable({ systemId }: { systemId: string }) { const { isIntersecting, ref } = useIntersectionObserver({ rootMargin: "90px" }) return (
{isIntersecting && }
) } const SmartTable = lazy(() => import("./smart-table")) export function LazySmartTable({ systemId }: { systemId: string }) { const { isIntersecting, ref } = useIntersectionObserver({ rootMargin: "90px" }) return (
{isIntersecting && }
) } const SystemdTable = lazy(() => import("../../systemd-table/systemd-table")) export function LazySystemdTable({ systemId }: { systemId: string }) { const { isIntersecting, ref } = useIntersectionObserver() return (
{isIntersecting && }
) } const NetworkProbesTable = lazy(() => import("@/components/network-probes-table/network-probes-table")) export function LazyNetworkProbesTable({ systemId, systemData }: { systemId: string; systemData: SystemData }) { const { isIntersecting, ref } = useIntersectionObserver() return (
{isIntersecting && }
) } function ProbesTable({ systemId, systemData }: { systemId: string; systemData: SystemData }) { const { grid, chartData } = systemData ?? {} const chartTime = useStore($chartTime) const { probes, probeStats } = useNetworkProbesData({ systemId, loadStats: !!chartData, chartTime }) return ( <> {!!chartData && !!probes.length && (
)} ) }