diff --git a/apps/web/pages/onboarding/recommend-users.tsx b/apps/web/pages/onboarding/recommend-users.tsx index bd3fa108b..e1956d28e 100644 --- a/apps/web/pages/onboarding/recommend-users.tsx +++ b/apps/web/pages/onboarding/recommend-users.tsx @@ -1,5 +1,12 @@ +import { Suspense } from 'react'; + +import { OnboardingRecommendUsersFallback } from '~/scenes/Onboarding/OnboardingRecommendUsersFallback'; import { OnboardingRecommendUsersPage } from '~/scenes/Onboarding/OnboardingRecommendUsersPage'; export default function RecommendUsers() { - return ; + return ( + }> + + + ); } diff --git a/apps/web/src/scenes/Onboarding/OnboardingRecommendUsersFallback.tsx b/apps/web/src/scenes/Onboarding/OnboardingRecommendUsersFallback.tsx new file mode 100644 index 000000000..f8fca8185 --- /dev/null +++ b/apps/web/src/scenes/Onboarding/OnboardingRecommendUsersFallback.tsx @@ -0,0 +1,118 @@ +import Skeleton from 'react-loading-skeleton'; +import styled from 'styled-components'; + +import breakpoints from '~/components/core/breakpoints'; +import { HStack, VStack } from '~/components/core/Spacer/Stack'; + +export function OnboardingRecommendUsersFallback() { + return ( + + + + + + + + + + + + + + ); +} + +function RecommendUsersFallback() { + return ( + <> + + + + + + + + + + + + ); +} + +const StyledFullPageLoader = styled.div` + display: flex; + height: 100vh; + width: 100%; + justify-content: center; + align-items: center; + + flex-direction: column; + padding-left: 24px; + padding-right: 24px; + margin-top: 48px; + + @media only screen and ${breakpoints.tablet} { + padding: 0; + flex-direction: row; + margin-top: 0; + } +`; + +const StyledContainer = styled(VStack)` + width: 100%; + margin-top: 24px; + + @media only screen and ${breakpoints.tablet} { + margin-top: 56px; + padding-right: 10%; + padding-left: 10%; + width: 400px; + margin-left: 46px; + margin-top: 0px; + padding-right: 0%; + padding-left: 0%; + width: auto; + } +`; + +const StyledPfpSkeleton = styled(Skeleton)` + width: 38px; + height: 38px; + border-radius: 9999px; +`; + +const StyledThinSkeleton = styled(Skeleton)` + width: 100%; + height: 40px; + + @media only screen and ${breakpoints.tablet} { + width: 440px; + } +`; + +const UserDetailsSmall = styled(Skeleton)` + width: 100%; + height: 18px; + + @media only screen and ${breakpoints.tablet} { + width: 100px; + } +`; + +const UserDetails = styled(Skeleton)` + width: 100%; + height: 16px; + + @media only screen and ${breakpoints.tablet} { + width: 150px; + } +`; + +const StyledButtonSkeleton = styled(Skeleton)` + width: 100%; + height: 32px; + + @media only screen and ${breakpoints.tablet} { + width: 110px; + } +`;