fix: display skeleton loader (#16114)

* fix: display loader

* fix: updated skelton loader
This commit is contained in:
Udit Takkar
2024-08-07 10:43:14 +01:00
committed by GitHub
parent d429f0ee04
commit 3ab735ba9c
2 changed files with 19 additions and 2 deletions
@@ -22,6 +22,18 @@ function SkeletonLoader() {
export default SkeletonLoader;
export function InfiniteSkeletonLoader() {
return (
<SkeletonContainer>
<ul className="border-subtle bg-default divide-subtle divide-y rounded-md border sm:mx-0 sm:overflow-hidden">
<SkeletonItem />
<SkeletonItem />
<SkeletonItem />
</ul>
</SkeletonContainer>
);
}
function SkeletonItem() {
return (
<li className="group flex w-full items-center justify-between px-4 py-4 sm:px-6">
@@ -64,7 +64,7 @@ import type { AppProps } from "@lib/app-providers";
import { useInViewObserver } from "@lib/hooks/useInViewObserver";
import useMeQuery from "@lib/hooks/useMeQuery";
import SkeletonLoader from "@components/eventtype/SkeletonLoader";
import SkeletonLoader, { InfiniteSkeletonLoader } from "@components/eventtype/SkeletonLoader";
type GetUserEventGroupsResponse = RouterOutputs["viewer"]["eventTypes"]["getUserEventGroups"];
type GetEventTypesFromGroupsResponse = RouterOutputs["viewer"]["eventTypes"]["getEventTypesFromGroup"];
@@ -105,6 +105,7 @@ interface InfiniteEventTypeListProps {
bookerUrl: string | null;
pages: { nextCursor: number | undefined; eventTypes: InfiniteEventType[] }[] | undefined;
lockedByOrg?: boolean;
isPending?: boolean;
}
interface EventTypeListProps {
@@ -186,6 +187,7 @@ const InfiniteMobileTeamsTab: FC<InfiniteMobileTeamsTabProps> = (props) => {
group={activeEventTypeGroup}
bookerUrl={activeEventTypeGroup.bookerUrl}
readOnly={activeEventTypeGroup.metadata.readOnly}
isPending={query.isPending}
/>
)}
<div className="text-default p-4 text-center" ref={buttonInView.ref}>
@@ -785,6 +787,7 @@ export const InfiniteEventTypeList = ({
pages,
bookerUrl,
lockedByOrg,
isPending,
}: InfiniteEventTypeListProps): JSX.Element => {
const { t } = useLocale();
const router = useRouter();
@@ -965,6 +968,8 @@ export const InfiniteEventTypeList = ({
}, []);
if (!pages?.[0]?.eventTypes?.length) {
if (isPending) return <InfiniteSkeletonLoader />;
return group.teamId ? (
<EmptyEventTypeList group={group} />
) : !group.profile.eventTypesLockedByOrg ? (
@@ -1570,7 +1575,7 @@ const InfiniteScrollMain = ({
}
if (!eventTypeGroups || !profiles || status === "pending") {
return <SkeletonLoader />;
return <InfiniteSkeletonLoader />;
}
const tabs = eventTypeGroups.map((item) => ({