diff --git a/apps/desktop/layer/renderer/src/modules/auth/LoginModalContent.tsx b/apps/desktop/layer/renderer/src/modules/auth/LoginModalContent.tsx
index 2b92c1378..e38cdf834 100644
--- a/apps/desktop/layer/renderer/src/modules/auth/LoginModalContent.tsx
+++ b/apps/desktop/layer/renderer/src/modules/auth/LoginModalContent.tsx
@@ -29,7 +29,7 @@ export const LoginModalContent = (props: LoginModalContentProps) => {
const { canClose = true, runtime } = props
const { t } = useTranslation()
- const { data: authProviders } = useAuthProviders()
+ const { data: authProviders, isLoading } = useAuthProviders()
const isMobile = useMobile()
@@ -79,25 +79,35 @@ export const LoginModalContent = (props: LoginModalContentProps) => {
)
) : (
- {providers.map(([key, provider]) => (
-
{
- if (key === "credential") {
- setIsEmail(true)
- } else {
- loginHandler(key, "app")
- }
- }}
- className="center hover:bg-material-medium relative w-full gap-2 rounded-xl border py-3 pl-5 font-semibold duration-200"
- >
-
- {t("login.continueWith", { provider: provider.name })}
-
- ))}
+ {isLoading
+ ? // Skeleton loaders to prevent CLS
+ Array.from({ length: 4 })
+ .fill(0)
+ .map((_, index) => (
+
+ ))
+ : providers.map(([key, provider]) => (
+
{
+ if (key === "credential") {
+ setIsEmail(true)
+ } else {
+ loginHandler(key, "app")
+ }
+ }}
+ className="center hover:bg-material-medium relative w-full gap-2 rounded-xl border py-3 pl-5 font-semibold duration-200"
+ >
+
+ {t("login.continueWith", { provider: provider.name })}
+
+ ))}
)}