atproto explorer
0
fork

Configure Feed

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

fix handle resolution

Juliet 7e87b7e3 1801d0b5

+12 -8
+3 -2
src/views/blob.tsx
··· 1 1 import { createResource, createSignal, For, Show } from "solid-js"; 2 2 import { CredentialManager, XRPC } from "@atcute/client"; 3 3 import { query, useParams } from "@solidjs/router"; 4 - import { resolvePDS } from "../utils/api.js"; 4 + import { resolveHandle, resolvePDS } from "../utils/api.js"; 5 5 6 6 const BlobView = () => { 7 7 const params = useParams(); 8 8 const [cursor, setCursor] = createSignal<string>(); 9 - const did = params.repo; 9 + let did = params.repo; 10 10 let pds: string; 11 11 let rpc: XRPC; 12 12 ··· 23 23 ); 24 24 25 25 const fetchBlobs = async (): Promise<string[]> => { 26 + if (!did.startsWith("did:")) did = await resolveHandle(params.repo); 26 27 if (!pds) pds = await resolvePDS(did); 27 28 if (!rpc) 28 29 rpc = new XRPC({ handler: new CredentialManager({ service: pds }) });
+3 -2
src/views/collection.tsx
··· 15 15 ComAtprotoRepoListRecords, 16 16 } from "@atcute/client/lexicons"; 17 17 import { A, action, query, useParams } from "@solidjs/router"; 18 - import { resolvePDS } from "../utils/api.js"; 18 + import { resolveHandle, resolvePDS } from "../utils/api.js"; 19 19 import * as TID from "@atcute/tid"; 20 20 import { JSONType, JSONValue } from "../components/json.jsx"; 21 21 import { agent, loginState } from "../components/login.jsx"; ··· 84 84 const [lastSelected, setLastSelected] = createSignal<number>(); 85 85 const [modal, setModal] = createSignal<HTMLDialogElement>(); 86 86 const [openDelete, setOpenDelete] = createSignal(false); 87 - const did = params.repo; 87 + let did = params.repo; 88 88 let pds: string; 89 89 let rpc: XRPC; 90 90 ··· 119 119 ); 120 120 121 121 const fetchRecords = async () => { 122 + if (!did.startsWith("did:")) did = await resolveHandle(params.repo); 122 123 if (!pds) pds = await resolvePDS(did); 123 124 if (!rpc) 124 125 rpc = new XRPC({ handler: new CredentialManager({ service: pds }) });
+3 -2
src/views/record.tsx
··· 8 8 import { Editor } from "../components/editor.jsx"; 9 9 import { editor } from "monaco-editor"; 10 10 import { setCID, setValidRecord, validRecord } from "../components/navbar.jsx"; 11 - import { didDocCache, resolvePDS } from "../utils/api.js"; 11 + import { didDocCache, resolveHandle, resolvePDS } from "../utils/api.js"; 12 12 import { theme } from "../layout.jsx"; 13 13 14 14 const RecordView = () => { ··· 24 24 { label: string; link: string } | undefined 25 25 >(); 26 26 let model: editor.IModel; 27 + let did = params.repo; 27 28 let rpc: XRPC; 28 29 29 30 const clickEvent = (event: MouseEvent) => { ··· 41 42 window.addEventListener("keydown", keyEvent); 42 43 setCID(undefined); 43 44 setValidRecord(undefined); 44 - const did = params.repo; 45 + if (!did.startsWith("did:")) did = await resolveHandle(params.repo); 45 46 const pds = await resolvePDS(did); 46 47 rpc = new XRPC({ handler: new CredentialManager({ service: pds }) }); 47 48 try {
+3 -2
src/views/repo.tsx
··· 1 1 import { createSignal, For, Show, createResource } from "solid-js"; 2 2 import { CredentialManager, XRPC } from "@atcute/client"; 3 3 import { A, query, useParams } from "@solidjs/router"; 4 - import { didDocCache, resolvePDS } from "../utils/api.js"; 4 + import { didDocCache, resolveHandle, resolvePDS } from "../utils/api.js"; 5 5 import { DidDocument } from "@atcute/client/utils/did"; 6 6 7 7 const RepoView = () => { 8 8 const params = useParams(); 9 9 const [didDoc, setDidDoc] = createSignal<DidDocument>(); 10 10 let rpc: XRPC; 11 + let did = params.repo; 11 12 12 13 const describeRepo = query( 13 14 (repo: string) => ··· 16 17 ); 17 18 18 19 const fetchRepo = async () => { 19 - const did = params.repo; 20 + if (!did.startsWith("did:")) did = await resolveHandle(params.repo); 20 21 const pds = await resolvePDS(did); 21 22 rpc = new XRPC({ handler: new CredentialManager({ service: pds }) }); 22 23 const res = await describeRepo(did);