Skip to content

Commit 680d865

Browse files
fix(calendar-web): improve rendering logic with a loading component
1 parent 8289635 commit 680d865

2 files changed

Lines changed: 13 additions & 11 deletions

File tree

packages/pluggableWidgets/calendar-web/src/Calendar.tsx

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ReactElement, useMemo } from "react";
1+
import { Fragment, ReactElement, useMemo } from "react";
22
import classNames from "classnames";
33
import { CalendarContainerProps } from "../typings/CalendarProps";
44
import { CalendarPropsBuilder } from "./helpers/CalendarPropsBuilder";
@@ -8,7 +8,7 @@ import "./ui/Calendar.scss";
88
import { useCalendarEvents } from "./helpers/useCalendarEvents";
99
import { useLocalizer } from "./helpers/useLocalizer";
1010

11-
export default function MxCalendar(props: CalendarContainerProps): ReactElement | null {
11+
export default function MxCalendar(props: CalendarContainerProps): ReactElement {
1212
// useMemo with empty dependency array is used
1313
// because style and calendar controller needs to be created only once
1414
// and not on every re-render
@@ -27,13 +27,15 @@ export default function MxCalendar(props: CalendarContainerProps): ReactElement
2727

2828
const calendarEvents = useCalendarEvents(props);
2929

30-
if (props.startDateAttribute && props.startDateAttribute.status !== "available") {
31-
return null;
32-
}
33-
3430
return (
35-
<div className={classNames("widget-calendar", props.class)} style={wrapperStyle}>
36-
<DnDCalendar {...calendarProps} {...calendarEvents} />
37-
</div>
31+
<Fragment>
32+
{props.startDateAttribute && props.startDateAttribute.status !== "available" ? (
33+
<div className="mx-progress"></div>
34+
) : (
35+
<div className={classNames("widget-calendar", props.class)} style={wrapperStyle}>
36+
<DnDCalendar {...calendarProps} {...calendarEvents} />
37+
</div>
38+
)}
39+
</Fragment>
3840
);
3941
}

packages/pluggableWidgets/calendar-web/typings/CalendarProps.d.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ export interface CalendarContainerProps {
7979
startAttribute?: ListAttributeValue<Date>;
8080
endAttribute?: ListAttributeValue<Date>;
8181
eventColor?: ListAttributeValue<string>;
82-
startDateAttribute?: EditableValue<Date>;
8382
editable: DynamicValue<boolean>;
8483
view: ViewEnum;
8584
defaultViewStandard: DefaultViewStandardEnum;
@@ -92,6 +91,7 @@ export interface CalendarContainerProps {
9291
showAllEvents: boolean;
9392
step: number;
9493
timeslots: number;
94+
startDateAttribute?: EditableValue<Date>;
9595
toolbarItems: ToolbarItemsType[];
9696
customViewShowMonday: boolean;
9797
customViewShowTuesday: boolean;
@@ -134,7 +134,6 @@ export interface CalendarPreviewProps {
134134
startAttribute: string;
135135
endAttribute: string;
136136
eventColor: string;
137-
startDateAttribute: string;
138137
editable: string;
139138
view: ViewEnum;
140139
defaultViewStandard: DefaultViewStandardEnum;
@@ -147,6 +146,7 @@ export interface CalendarPreviewProps {
147146
showAllEvents: boolean;
148147
step: number | null;
149148
timeslots: number | null;
149+
startDateAttribute: string;
150150
toolbarItems: ToolbarItemsPreviewType[];
151151
customViewShowMonday: boolean;
152152
customViewShowTuesday: boolean;

0 commit comments

Comments
 (0)