tangled
alpha
login
or
join now
retr0.id
/
pdsls
forked from
pds.ls/pdsls
1
fork
atom
atproto explorer
1
fork
atom
overview
issues
pulls
pipelines
add lex: for NSID search
handle.invalid
5 months ago
19822f39
b89c4a89
verified
This commit was signed with the committer's
known signature
.
handle.invalid
SSH Key Fingerprint:
SHA256:mBrT4x0JdzLpbVR95g1hjI1aaErfC02kmLRkPXwsYCk=
+7
-1
1 changed file
expand all
collapse all
unified
split
src
components
search.tsx
+7
-1
src/components/search.tsx
···
1
import { Client, CredentialManager } from "@atcute/client";
0
2
import { A, useLocation, useNavigate } from "@solidjs/router";
3
import { createResource, createSignal, For, onCleanup, onMount, Show } from "solid-js";
4
import { isTouchDevice } from "../layout";
0
5
import { appHandleLink, appList, appName, AppUrl } from "../utils/app-urls";
6
import { createDebouncedValue } from "../utils/hooks/debounced";
7
import { Modal } from "./modal";
···
64
const [input, setInput] = createSignal<string>();
65
const [search] = createResource(createDebouncedValue(input, 250), fetchTypeahead);
66
67
-
const processInput = (input: string) => {
68
input = input.trim().replace(/^@/, "");
69
if (!input.length) return;
70
setShowSearch(false);
···
83
const uri = appHandleLink[app](path);
84
navigate(`/${uri}`);
85
}
0
0
0
0
86
} else {
87
navigate(`/at://${input.replace("at://", "")}`);
88
}
···
1
import { Client, CredentialManager } from "@atcute/client";
2
+
import { Nsid } from "@atcute/lexicons";
3
import { A, useLocation, useNavigate } from "@solidjs/router";
4
import { createResource, createSignal, For, onCleanup, onMount, Show } from "solid-js";
5
import { isTouchDevice } from "../layout";
6
+
import { resolveLexiconAuthority } from "../utils/api";
7
import { appHandleLink, appList, appName, AppUrl } from "../utils/app-urls";
8
import { createDebouncedValue } from "../utils/hooks/debounced";
9
import { Modal } from "./modal";
···
66
const [input, setInput] = createSignal<string>();
67
const [search] = createResource(createDebouncedValue(input, 250), fetchTypeahead);
68
69
+
const processInput = async (input: string) => {
70
input = input.trim().replace(/^@/, "");
71
if (!input.length) return;
72
setShowSearch(false);
···
85
const uri = appHandleLink[app](path);
86
navigate(`/${uri}`);
87
}
88
+
} else if (input.startsWith("lex:")) {
89
+
const nsid = input.replace("lex:", "") as Nsid;
90
+
const res = await resolveLexiconAuthority(nsid);
91
+
navigate(`/at://${res}/com.atproto.lexicon.schema/${nsid}`);
92
} else {
93
navigate(`/at://${input.replace("at://", "")}`);
94
}