ATProto forum built with ESAV

fix weird search

rimar1337 22ccfe59 7ba87718

+28
package-lock.json
··· 13 "@radix-ui/react-select": "^2.2.5", 14 "@tailwindcss/vite": "^4.1.11", 15 "@tanstack/react-query": "^5.84.1", 16 "@tanstack/react-router": "^1.130.2", 17 "@tanstack/react-router-devtools": "^1.130.2", 18 "@tanstack/router-plugin": "^1.121.2", ··· 2342 "url": "https://github.com/sponsors/tannerlinsley" 2343 } 2344 }, 2345 "node_modules/@tanstack/react-query": { 2346 "version": "5.84.1", 2347 "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.84.1.tgz", ··· 2355 "url": "https://github.com/sponsors/tannerlinsley" 2356 }, 2357 "peerDependencies": { 2358 "react": "^18 || ^19" 2359 } 2360 },
··· 13 "@radix-ui/react-select": "^2.2.5", 14 "@tailwindcss/vite": "^4.1.11", 15 "@tanstack/react-query": "^5.84.1", 16 + "@tanstack/react-query-devtools": "^5.84.1", 17 "@tanstack/react-router": "^1.130.2", 18 "@tanstack/react-router-devtools": "^1.130.2", 19 "@tanstack/router-plugin": "^1.121.2", ··· 2343 "url": "https://github.com/sponsors/tannerlinsley" 2344 } 2345 }, 2346 + "node_modules/@tanstack/query-devtools": { 2347 + "version": "5.84.0", 2348 + "resolved": "https://registry.npmjs.org/@tanstack/query-devtools/-/query-devtools-5.84.0.tgz", 2349 + "integrity": "sha512-fbF3n+z1rqhvd9EoGp5knHkv3p5B2Zml1yNRjh7sNXklngYI5RVIWUrUjZ1RIcEoscarUb0+bOvIs5x9dwzOXQ==", 2350 + "license": "MIT", 2351 + "funding": { 2352 + "type": "github", 2353 + "url": "https://github.com/sponsors/tannerlinsley" 2354 + } 2355 + }, 2356 "node_modules/@tanstack/react-query": { 2357 "version": "5.84.1", 2358 "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.84.1.tgz", ··· 2366 "url": "https://github.com/sponsors/tannerlinsley" 2367 }, 2368 "peerDependencies": { 2369 + "react": "^18 || ^19" 2370 + } 2371 + }, 2372 + "node_modules/@tanstack/react-query-devtools": { 2373 + "version": "5.84.1", 2374 + "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.84.1.tgz", 2375 + "integrity": "sha512-nle+OQ9B3Z3EG2R3ixvaNcJ6OeqGwmAc5iMDW6Vj+emLZkWRrN3BDsrzZQu414n34lpxplnC7z1jmKuU/scHCQ==", 2376 + "license": "MIT", 2377 + "dependencies": { 2378 + "@tanstack/query-devtools": "5.84.0" 2379 + }, 2380 + "funding": { 2381 + "type": "github", 2382 + "url": "https://github.com/sponsors/tannerlinsley" 2383 + }, 2384 + "peerDependencies": { 2385 + "@tanstack/react-query": "^5.84.1", 2386 "react": "^18 || ^19" 2387 } 2388 },
+1
package.json
··· 17 "@radix-ui/react-select": "^2.2.5", 18 "@tailwindcss/vite": "^4.1.11", 19 "@tanstack/react-query": "^5.84.1", 20 "@tanstack/react-router": "^1.130.2", 21 "@tanstack/react-router-devtools": "^1.130.2", 22 "@tanstack/router-plugin": "^1.121.2",
··· 17 "@radix-ui/react-select": "^2.2.5", 18 "@tailwindcss/vite": "^4.1.11", 19 "@tanstack/react-query": "^5.84.1", 20 + "@tanstack/react-query-devtools": "^5.84.1", 21 "@tanstack/react-router": "^1.130.2", 22 "@tanstack/react-router-devtools": "^1.130.2", 23 "@tanstack/router-plugin": "^1.121.2",
+3 -1
src/routes/__root.tsx
··· 6 createRootRouteWithContext, 7 } from "@tanstack/react-router"; 8 import { TanStackRouterDevtools } from "@tanstack/react-router-devtools"; 9 - 10 export const Route = createRootRouteWithContext<{ 11 queryClient: QueryClient; 12 }>()({ ··· 15 <Header /> 16 <Outlet /> 17 <TanStackRouterDevtools /> 18 </> 19 ), 20 });
··· 6 createRootRouteWithContext, 7 } from "@tanstack/react-router"; 8 import { TanStackRouterDevtools } from "@tanstack/react-router-devtools"; 9 + import { ReactQueryDevtools } from '@tanstack/react-query-devtools' 10 + 11 export const Route = createRootRouteWithContext<{ 12 queryClient: QueryClient; 13 }>()({ ··· 16 <Header /> 17 <Outlet /> 18 <TanStackRouterDevtools /> 19 + <ReactQueryDevtools /> 20 </> 21 ), 22 });
+1
src/routes/f/$forumHandle.tsx
··· 123 </div> 124 </div> 125 </div> 126 </> 127 ); 128 }
··· 123 </div> 124 </div> 125 </div> 126 + <Outlet /> 127 </> 128 ); 129 }
+7 -3
src/routes/search.tsx
··· 73 const [forumHandle, setForumHandle] = useState<string | undefined>(undefined); 74 const { get, set } = usePersistentStore(); 75 76 const rootUri = useMemo(() => post.root || post["$metadata.uri"], [post]); 77 const postUri = post["$metadata.uri"]; 78 ··· 85 let isCancelled = false; 86 const buildLink = async () => { 87 try { 88 - const rootAtUri = new AtUri(rootUri); 89 const authorIdentity = await cachedResolveIdentity({ 90 - didOrHandle: rootAtUri.hostname, 91 get, 92 set, 93 }); ··· 135 params={{ forumHandle: post.forum }} 136 className="font-semibold text-blue-300 hover:underline" 137 > 138 - /f/{forumHandle || post.root} 139 </Link> 140 </span> 141 {threadLink ? (
··· 73 const [forumHandle, setForumHandle] = useState<string | undefined>(undefined); 74 const { get, set } = usePersistentStore(); 75 76 + const thing = post["forum"]// || new AtUripost["root"] 77 + const trimmed = thing.startsWith("@") ? thing.slice(1) : thing 78 + 79 + 80 const rootUri = useMemo(() => post.root || post["$metadata.uri"], [post]); 81 const postUri = post["$metadata.uri"]; 82 ··· 89 let isCancelled = false; 90 const buildLink = async () => { 91 try { 92 + //const forumAtUri = new AtUri(forumdid); 93 const authorIdentity = await cachedResolveIdentity({ 94 + didOrHandle: trimmed, 95 get, 96 set, 97 }); ··· 139 params={{ forumHandle: post.forum }} 140 className="font-semibold text-blue-300 hover:underline" 141 > 142 + /f/{forumHandle} 143 </Link> 144 </span> 145 {threadLink ? (