alternative tangled frontend (extremely wip)
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

refactor: refine loading states

serenity 935250f5 1175f276

+15 -7
+1 -1
src/components/Profile/Avatar.tsx
··· 20 20 {(!loaded || !uri) && ( 21 21 <motion.div 22 22 key="skeleton" 23 - className="bg-overlay0 absolute inset-0 w-24 animate-pulse" 23 + className="bg-overlay0 absolute inset-0 min-w-24 animate-pulse" 24 24 exit={{ opacity: 0 }} 25 25 transition={{ duration: 0.2 }} 26 26 />
+14 -6
src/components/Profile/ProfileOverview.tsx
··· 59 59 if (isLoading) return <Loading />; 60 60 if (err) return <p>{err.message}</p>; 61 61 62 - const avatarUri = avatarQueryData; 62 + const avatarUri = avatarQueryData === "#" ? undefined : avatarQueryData; 63 63 const { handle } = miniDocQueryData; 64 - const { pronouns, description, bluesky, location, links } = 64 + const { pronouns, description, bluesky, location, links, pinnedRepositories } = 65 65 profileQueryData; 66 66 67 + console.log(avatarUri) 68 + 67 69 return ( 68 70 <div className="bg-surface0 flex w-256 justify-between gap-2 pt-8"> 69 71 <div className="flex flex-col gap-4"> 70 - <Avatar 71 - uri={avatarUri} 72 - className="outline-overlay0 max-w-52 rounded-full outline" 73 - /> 72 + {!avatarUri ? ( 73 + <div className="flex h-24 w-24 items-center justify-center"> 74 + <Loading /> 75 + </div> 76 + ) : ( 77 + <Avatar 78 + uri={avatarUri} 79 + className="outline-overlay0 w-52 h-52 rounded-full outline" 80 + /> 81 + )} 74 82 <div> 75 83 <h2 className="flex h-fit items-center pt-2 text-lg font-semibold"> 76 84 @{handle}