From cc1b6bac4ab93613d5757ffc42efe101fcb97ee9 Mon Sep 17 00:00:00 2001 From: Benny Joo Date: Tue, 18 Mar 2025 16:05:02 -0400 Subject: [PATCH] perf: Remove QueryCell from availability view (#20176) --- .../availability/availability-view.tsx | 32 +++++++------------ 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/apps/web/modules/availability/availability-view.tsx b/apps/web/modules/availability/availability-view.tsx index 1a68a0e093..300b2ec8e1 100644 --- a/apps/web/modules/availability/availability-view.tsx +++ b/apps/web/modules/availability/availability-view.tsx @@ -15,17 +15,16 @@ import { useLocale } from "@calcom/lib/hooks/useLocale"; import { HttpError } from "@calcom/lib/http-error"; import type { OrganizationRepository } from "@calcom/lib/server/repository/organization"; import { MembershipRole } from "@calcom/prisma/enums"; -import type { RouterOutputs } from "@calcom/trpc/react"; import { trpc } from "@calcom/trpc/react"; import useMeQuery from "@calcom/trpc/react/hooks/useMeQuery"; import { EmptyScreen, showToast, ToggleGroup } from "@calcom/ui"; -import { QueryCell } from "@lib/QueryCell"; - -export function AvailabilityList({ schedules }: RouterOutputs["viewer"]["availability"]["list"]) { +export function AvailabilityList() { const { t } = useLocale(); const [bulkUpdateModal, setBulkUpdateModal] = useState(false); const utils = trpc.useUtils(); + const { data: availabilityData, isFetching: isFetchingAvailabilityData } = + trpc.viewer.availability.list.useQuery(); const meQuery = trpc.viewer.me.get.useQuery(); @@ -121,9 +120,13 @@ export function AvailabilityList({ schedules }: RouterOutputs["viewer"]["availab const [animationParentRef] = useAutoAnimate(); + if (isFetchingAvailabilityData || !availabilityData) { + return ; + } + return ( <> - {schedules.length === 0 ? ( + {availabilityData.schedules.length === 0 ? (
    - {schedules.map((schedule) => ( + {availabilityData.schedules.map((schedule) => ( } - customLoader={} - /> - ); -} - type PageProps = { currentOrg?: Awaited> | null; }; @@ -245,6 +236,7 @@ export default function AvailabilityPage({ currentOrg }: PageProps) { const { t } = useLocale(); const searchParams = useCompatSearchParams(); const me = useMeQuery(); + const { data: _data } = trpc.viewer.organizations.listCurrent.useQuery(undefined, { enabled: !currentOrg }); const data = currentOrg ?? _data; @@ -264,6 +256,6 @@ export default function AvailabilityPage({ currentOrg }: PageProps) { return searchParams?.get("type") === "team" && canViewTeamAvailability ? ( ) : ( - + ); }