diff --git a/.changeset/quiet-dancers-jog.md b/.changeset/quiet-dancers-jog.md new file mode 100644 index 0000000000..2cca69103a --- /dev/null +++ b/.changeset/quiet-dancers-jog.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-gcalendar': patch +--- + +Fixed loader showing when user not signed in diff --git a/plugins/gcalendar/src/components/CalendarCard/CalendarCard.tsx b/plugins/gcalendar/src/components/CalendarCard/CalendarCard.tsx index a5575bc190..0a9b517293 100644 --- a/plugins/gcalendar/src/components/CalendarCard/CalendarCard.tsx +++ b/plugins/gcalendar/src/components/CalendarCard/CalendarCard.tsx @@ -50,10 +50,13 @@ export const CalendarCard = () => { useAsync(async () => signIn(true), [signIn]); - const { isLoading: isCalendarLoading, data: calendars = [] } = - useCalendarsQuery({ - enabled: isSignedIn, - }); + const { + isLoading: isCalendarLoading, + isFetching: isCalendarFetching, + data: calendars = [], + } = useCalendarsQuery({ + enabled: isSignedIn, + }); const primaryCalendarId = calendars.find(c => c.primary === true)?.id; const defaultSelectedCalendars = primaryCalendarId ? [primaryCalendarId] : []; const [storedCalendars, setStoredCalendars] = useStoredCalendars( @@ -69,6 +72,11 @@ export const CalendarCard = () => { timeZone: date.zoneName, }); + const showLoader = + (isCalendarLoading && isCalendarFetching) || + isEventLoading || + !isInitialized; + return ( { calendars={calendars} selectedCalendars={storedCalendars} setSelectedCalendars={setStoredCalendars} - disabled={isCalendarLoading || !isSignedIn} + disabled={ + (isCalendarFetching && isCalendarLoading) || !isSignedIn + } /> ) : ( @@ -114,8 +124,8 @@ export const CalendarCard = () => { }} > - {(isCalendarLoading || isEventLoading || !isInitialized) && ( - + {showLoader && ( + )}