view who was fronting when a record was made

feat: show fronters on replied to

ptr.pet c2488655 7073cc29

verified
Changed files
+27
src
+5
src/entrypoints/background.ts
··· 172 172 }, 173 173 ...fronter, 174 174 }; 175 + } else if (uri === item.post.uri) { 176 + fronter = { 177 + replyTo: item.reply?.parent.uri, 178 + ...fronter, 179 + }; 175 180 } 176 181 const parsedUri = await cacheFronter(uri, fronter); 177 182 return {
+21
src/entrypoints/content.ts
··· 1 + import { expect } from "@/lib/result"; 1 2 import { FronterView, parseSocialAppPostUrl } from "@/lib/utils"; 3 + import { parseResourceUri } from "@atcute/lexicons"; 2 4 3 5 const getAuthHeader = (headers: any): string | null => { 4 6 if (headers instanceof Headers) { ··· 215 217 displayNameElement, 216 218 ); 217 219 return; 220 + } 221 + if (fronter.type === "post" && fronter.replyTo) { 222 + const parsedReplyUri = expect(parseResourceUri(fronter.replyTo)); 223 + const replyFronter = fronters.get( 224 + `/profile/${parsedReplyUri.repo}/post/${parsedReplyUri.rkey}`, 225 + ); 226 + if (replyFronter && replyFronter.members?.length > 0) { 227 + const replyDisplayNameElement = 228 + el.parentElement?.parentElement?.parentElement 229 + ?.firstElementChild?.nextElementSibling?.firstElementChild 230 + ?.nextElementSibling?.firstElementChild?.firstElementChild 231 + ?.firstElementChild?.firstElementChild ?? null; 232 + if (replyDisplayNameElement) { 233 + applyFronterName( 234 + replyDisplayNameElement, 235 + replyFronter.members, 236 + ); 237 + } 238 + } 218 239 } 219 240 } 220 241 }
+1
src/lib/utils.ts
··· 42 42 handle: Handle | null; 43 43 did: AtprotoDid; 44 44 subject?: Subject; 45 + replyTo?: ResourceUri; 45 46 }; 46 47 47 48 export type FronterView = Fronter & { rkey: RecordKey } & (