1import { createAsync, useParams } from "@solidjs/router";
2import { createMemo, For } from "solid-js";
3import { getUserRepos } from "../util/get_repo";
4import { figureOutDid } from "../util/handle";
5
6export default function User() {
7 const params = useParams();
8 const did = createAsync(() => figureOutDid(params.user));
9
10 const repos = createAsync(() => {
11 const d = did();
12 if (!d) return Promise.resolve(undefined);
13 return getUserRepos(d);
14 });
15
16 const data = createMemo(() => {
17 const reposRes = repos();
18
19 if (!reposRes) return <div>No repositories found</div>;
20
21 return (
22 <For each={Object.values(reposRes)}>
23 {(repo) => <a href={`/${params.user}/${repo.name}`}>{repo.name}</a>}
24 </For>
25 );
26 });
27
28 return (
29 <div class="mx-auto max-w-5xl">
30 <div class="mb-4 rounded bg-white p-4 dark:bg-gray-800">{data()}</div>
31 </div>
32 );
33}