Skip to content

Commit b5be418

Browse files
authored
Better loading in the conference schedule builder (#4377)
1 parent ae7154e commit b5be418

File tree

1 file changed

+35
-16
lines changed
  • backend/custom_admin/src/components/schedule-builder

1 file changed

+35
-16
lines changed
Lines changed: 35 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
1+
import { Flex, Spinner } from "@radix-ui/themes";
2+
import { Suspense } from "react";
13
import { Base } from "../shared/base";
24
import { DjangoAdminLayout } from "../shared/django-admin-layout";
35
import { useCurrentConference } from "../utils/conference";
46
import { AddItemModalProvider } from "./add-item-modal/context";
57
import { Calendar } from "./calendar";
68
import { PendingItemsBasket } from "./pending-items-basket";
7-
import { useConferenceScheduleQuery } from "./schedule.generated";
9+
import {
10+
useConferenceScheduleQuery,
11+
useConferenceScheduleSuspenseQuery,
12+
} from "./schedule.generated";
813

914
export const ScheduleBuilderRoot = ({
1015
conferenceId,
@@ -21,7 +26,23 @@ export const ScheduleBuilderRoot = ({
2126
>
2227
<AddItemModalProvider>
2328
<DjangoAdminLayout>
24-
<ScheduleBuilder />
29+
<Suspense
30+
fallback={
31+
<Flex
32+
align="center"
33+
justify="center"
34+
width="100%"
35+
height="100%"
36+
position="absolute"
37+
top="0"
38+
left="0"
39+
>
40+
<Spinner size="3" />
41+
</Flex>
42+
}
43+
>
44+
<ScheduleBuilder />
45+
</Suspense>
2546
</DjangoAdminLayout>
2647
</AddItemModalProvider>
2748
</Base>
@@ -30,30 +51,28 @@ export const ScheduleBuilderRoot = ({
3051

3152
const ScheduleBuilder = () => {
3253
const { conferenceCode } = useCurrentConference();
33-
const { error, loading, data } = useConferenceScheduleQuery({
54+
const { error, data } = useConferenceScheduleSuspenseQuery({
3455
variables: {
3556
conferenceCode,
3657
},
3758
});
3859

3960
const {
4061
conference: { days },
41-
} = data ?? { conference: {} };
62+
} = data;
63+
64+
if (error) {
65+
return (
66+
<h2>Something went wrong. Make sure you have the right permissions.</h2>
67+
);
68+
}
4269

4370
return (
4471
<>
45-
{loading && <h2>Please wait</h2>}
46-
{!loading && error && (
47-
<h2>Something went wrong. Make sure you have the right permissions.</h2>
48-
)}
49-
{!loading && (
50-
<>
51-
{days.map((day) => (
52-
<Calendar key={day.id} day={day} />
53-
))}
54-
<PendingItemsBasket />
55-
</>
56-
)}
72+
{days.map((day) => (
73+
<Calendar key={day.id} day={day} />
74+
))}
75+
<PendingItemsBasket />
5776
</>
5877
);
5978
};

0 commit comments

Comments
 (0)