+28
package-lock.json
+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
+1
package.json
+3
-1
src/routes/__root.tsx
+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
+1
src/routes/f/$forumHandle.tsx
+7
-3
src/routes/search.tsx
+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 ? (