this repo has no description

Fix users with no profile record not being shown (#7)

Co-authored-by: Casey <hatkidchan@gmail.com>
Co-authored-by: Ari <ariadna@hey.com>
Reviewed-on: https://git.witchcraft.systems/scientific-witchery/pds-dash/pulls/7
Reviewed-by: Ariadna <ariadna@hey.com>

Changed files
+35 -13
src
themes
express
witchcraft
+7 -3
src/lib/AccountComponent.svelte
··· 12 12 alt="avatar of {account.displayName}" 13 13 src="{Config.PDS_URL}/xrpc/com.atproto.sync.getBlob?did={account.did}&cid={account.avatarCid}" 14 14 /> 15 + <div id="accountName"> 16 + {account.displayName || account.handle || account.did} 17 + </div> 18 + {:else} 19 + <div id="accountName" class="no-avatar"> 20 + {account.displayName || account.handle || account.did} 21 + </div> 15 22 {/if} 16 - <div id="accountName"> 17 - {account.displayName || account.handle || account.did} 18 - </div> 19 23 </div> 20 24 </a> 21 25
+17 -10
src/lib/pdsfetch.ts
··· 132 132 const getAccountMetadata = async ( 133 133 did: `did:${string}:${string}`, 134 134 ) => { 135 - // gonna assume self exists in the app.bsky.actor.profile 135 + const account: AccountMetadata = { 136 + did: did, 137 + handle: "", // Guaranteed to be filled out later 138 + displayName: "", 139 + avatarCid: null, 140 + }; 141 + 136 142 try { 137 143 const { data } = await rpc.get("com.atproto.repo.getRecord", { 138 144 params: { ··· 142 148 }, 143 149 }); 144 150 const value = data.value as AppBskyActorProfile.Record; 145 - const handle = await blueskyHandleFromDid(did); 146 - const account: AccountMetadata = { 147 - did: did, 148 - handle: handle, 149 - displayName: value.displayName || "", 150 - avatarCid: null, 151 - }; 151 + account.displayName = value.displayName || ""; 152 152 if (value.avatar) { 153 153 account.avatarCid = value.avatar.ref["$link"]; 154 154 } 155 - return account; 155 + } catch (e) { 156 + console.warn(`Error fetching profile for ${did}:`, e); 157 + } 158 + 159 + try { 160 + account.handle = await blueskyHandleFromDid(did); 156 161 } catch (e) { 157 - console.error(`Error fetching metadata for ${did}:`, e); 162 + console.error(`Error fetching handle for ${did}:`, e); 158 163 return null; 159 164 } 165 + 166 + return account; 160 167 }; 161 168 162 169 const getAllMetadataFromPds = async (): Promise<AccountMetadata[]> => {
+5
themes/express/theme.css
··· 237 237 margin-right: 4px; 238 238 border: 4px solid var(--border-color); 239 239 box-shadow: var(--border-color) 10px 10px; 240 + min-height: 30px; 240 241 } 241 242 #accountName { 242 243 margin-left: 10px; ··· 247 248 overflow: hidden; 248 249 text-overflow: ellipsis; 249 250 white-space: nowrap; 251 + } 252 + 253 + .no-avatar { 254 + margin-left: 40px !important; 250 255 } 251 256 252 257 /* App.Svelte */
+6
themes/witchcraft/theme.css
··· 235 235 padding: 0px; 236 236 margin-bottom: 15px; 237 237 border: 1px solid var(--border-color); 238 + min-height: 30px; 238 239 } 239 240 #accountName { 240 241 margin-left: 10px; ··· 245 246 overflow: hidden; 246 247 text-overflow: ellipsis; 247 248 white-space: nowrap; 249 + } 250 + 251 + 252 + .no-avatar { 253 + margin-left: 70px !important; 248 254 } 249 255 250 256 /* App.Svelte */