atproto explorer pdsls.dev
atproto tool

fix handle resolution

Changed files
+12 -8
src
+3 -2
src/views/blob.tsx
···
import { createResource, createSignal, For, Show } from "solid-js";
import { CredentialManager, XRPC } from "@atcute/client";
import { query, useParams } from "@solidjs/router";
-
import { resolvePDS } from "../utils/api.js";
+
import { resolveHandle, resolvePDS } from "../utils/api.js";
const BlobView = () => {
const params = useParams();
const [cursor, setCursor] = createSignal<string>();
-
const did = params.repo;
+
let did = params.repo;
let pds: string;
let rpc: XRPC;
···
);
const fetchBlobs = async (): Promise<string[]> => {
+
if (!did.startsWith("did:")) did = await resolveHandle(params.repo);
if (!pds) pds = await resolvePDS(did);
if (!rpc)
rpc = new XRPC({ handler: new CredentialManager({ service: pds }) });
+3 -2
src/views/collection.tsx
···
ComAtprotoRepoListRecords,
} from "@atcute/client/lexicons";
import { A, action, query, useParams } from "@solidjs/router";
-
import { resolvePDS } from "../utils/api.js";
+
import { resolveHandle, resolvePDS } from "../utils/api.js";
import * as TID from "@atcute/tid";
import { JSONType, JSONValue } from "../components/json.jsx";
import { agent, loginState } from "../components/login.jsx";
···
const [lastSelected, setLastSelected] = createSignal<number>();
const [modal, setModal] = createSignal<HTMLDialogElement>();
const [openDelete, setOpenDelete] = createSignal(false);
-
const did = params.repo;
+
let did = params.repo;
let pds: string;
let rpc: XRPC;
···
);
const fetchRecords = async () => {
+
if (!did.startsWith("did:")) did = await resolveHandle(params.repo);
if (!pds) pds = await resolvePDS(did);
if (!rpc)
rpc = new XRPC({ handler: new CredentialManager({ service: pds }) });
+3 -2
src/views/record.tsx
···
import { Editor } from "../components/editor.jsx";
import { editor } from "monaco-editor";
import { setCID, setValidRecord, validRecord } from "../components/navbar.jsx";
-
import { didDocCache, resolvePDS } from "../utils/api.js";
+
import { didDocCache, resolveHandle, resolvePDS } from "../utils/api.js";
import { theme } from "../layout.jsx";
const RecordView = () => {
···
{ label: string; link: string } | undefined
>();
let model: editor.IModel;
+
let did = params.repo;
let rpc: XRPC;
const clickEvent = (event: MouseEvent) => {
···
window.addEventListener("keydown", keyEvent);
setCID(undefined);
setValidRecord(undefined);
-
const did = params.repo;
+
if (!did.startsWith("did:")) did = await resolveHandle(params.repo);
const pds = await resolvePDS(did);
rpc = new XRPC({ handler: new CredentialManager({ service: pds }) });
try {
+3 -2
src/views/repo.tsx
···
import { createSignal, For, Show, createResource } from "solid-js";
import { CredentialManager, XRPC } from "@atcute/client";
import { A, query, useParams } from "@solidjs/router";
-
import { didDocCache, resolvePDS } from "../utils/api.js";
+
import { didDocCache, resolveHandle, resolvePDS } from "../utils/api.js";
import { DidDocument } from "@atcute/client/utils/did";
const RepoView = () => {
const params = useParams();
const [didDoc, setDidDoc] = createSignal<DidDocument>();
let rpc: XRPC;
+
let did = params.repo;
const describeRepo = query(
(repo: string) =>
···
);
const fetchRepo = async () => {
-
const did = params.repo;
+
if (!did.startsWith("did:")) did = await resolveHandle(params.repo);
const pds = await resolvePDS(did);
rpc = new XRPC({ handler: new CredentialManager({ service: pds }) });
const res = await describeRepo(did);