From b5be418d9b2f069d03d5d4d183e0d2aef752e3c4 Mon Sep 17 00:00:00 2001 From: Marco Acierno Date: Sun, 23 Feb 2025 17:47:12 +0000 Subject: [PATCH] Better loading in the conference schedule builder (#4377) --- .../src/components/schedule-builder/root.tsx | 51 +++++++++++++------ 1 file changed, 35 insertions(+), 16 deletions(-) diff --git a/backend/custom_admin/src/components/schedule-builder/root.tsx b/backend/custom_admin/src/components/schedule-builder/root.tsx index bf71577fba..d66c24f054 100644 --- a/backend/custom_admin/src/components/schedule-builder/root.tsx +++ b/backend/custom_admin/src/components/schedule-builder/root.tsx @@ -1,10 +1,15 @@ +import { Flex, Spinner } from "@radix-ui/themes"; +import { Suspense } from "react"; import { Base } from "../shared/base"; import { DjangoAdminLayout } from "../shared/django-admin-layout"; import { useCurrentConference } from "../utils/conference"; import { AddItemModalProvider } from "./add-item-modal/context"; import { Calendar } from "./calendar"; import { PendingItemsBasket } from "./pending-items-basket"; -import { useConferenceScheduleQuery } from "./schedule.generated"; +import { + useConferenceScheduleQuery, + useConferenceScheduleSuspenseQuery, +} from "./schedule.generated"; export const ScheduleBuilderRoot = ({ conferenceId, @@ -21,7 +26,23 @@ export const ScheduleBuilderRoot = ({ > - + + + + } + > + + @@ -30,7 +51,7 @@ export const ScheduleBuilderRoot = ({ const ScheduleBuilder = () => { const { conferenceCode } = useCurrentConference(); - const { error, loading, data } = useConferenceScheduleQuery({ + const { error, data } = useConferenceScheduleSuspenseQuery({ variables: { conferenceCode, }, @@ -38,22 +59,20 @@ const ScheduleBuilder = () => { const { conference: { days }, - } = data ?? { conference: {} }; + } = data; + + if (error) { + return ( +

Something went wrong. Make sure you have the right permissions.

+ ); + } return ( <> - {loading &&

Please wait

} - {!loading && error && ( -

Something went wrong. Make sure you have the right permissions.

- )} - {!loading && ( - <> - {days.map((day) => ( - - ))} - - - )} + {days.map((day) => ( + + ))} + ); };