WIP PWA for Grain
0
fork

Configure Feed

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

refactor: simplify getProfile query with gallery join

Uses socialGrainGalleryByDid to fetch galleries in single query
instead of two separate root queries.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

+17 -20
+17 -20
src/services/grain-api.js
··· 130 130 displayName 131 131 description 132 132 avatar { url(preset: "avatar") } 133 - } 134 - } 135 - } 136 - 137 - socialGrainGallery( 138 - where: { actorHandle: { eq: $handle } } 139 - sortBy: [{ field: createdAt, direction: DESC }] 140 - ) { 141 - totalCount 142 - edges { 143 - node { 144 - uri 145 - title 146 - createdAt 147 - socialGrainGalleryItemViaGallery(first: 1) { 133 + socialGrainGalleryByDid(sortBy: [{ field: createdAt, direction: DESC }]) { 134 + totalCount 148 135 edges { 149 136 node { 150 - itemResolved { 151 - ... on SocialGrainPhoto { 152 - photo { url(preset: "feed_thumbnail") } 137 + uri 138 + title 139 + createdAt 140 + socialGrainGalleryItemViaGallery(first: 1) { 141 + edges { 142 + node { 143 + itemResolved { 144 + ... on SocialGrainPhoto { 145 + photo { url(preset: "feed_thumbnail") } 146 + } 147 + } 148 + } 153 149 } 154 150 } 155 151 } ··· 166 162 167 163 const profileEdge = data.socialGrainActorProfile?.edges?.[0]; 168 164 const profile = profileEdge?.node; 165 + const galleriesConnection = profile?.socialGrainGalleryByDid; 169 166 170 - const galleries = data.socialGrainGallery?.edges?.map(edge => { 167 + const galleries = galleriesConnection?.edges?.map(edge => { 171 168 const node = edge.node; 172 169 const firstPhoto = node.socialGrainGalleryItemViaGallery?.edges?.[0]?.node?.itemResolved; 173 170 return { ··· 184 181 description: profile?.description || '', 185 182 avatarUrl: profile?.avatar?.url || '', 186 183 did: profile?.did || '', 187 - galleryCount: data.socialGrainGallery?.totalCount || 0, 184 + galleryCount: galleriesConnection?.totalCount || 0, 188 185 followerCount: 0, 189 186 followingCount: 0, 190 187 galleries