import { useParams } from "wouter"; import { useQuery } from "@tanstack/react-query"; import useLocalState from "@/state/state"; import Icon from "@/components/Icon"; import spinner from "@/assets/triangles.svg"; import { ErrorPage } from "@/pages/Error"; import "@/styles/trill.css"; import "@/styles/feed.css"; import Post from "@/components/post/Post"; import { extractThread, toFlat } from "@/logic/trill/helpers"; import type { FullNode } from "@/types/trill"; import Composer from "@/components/composer/Composer"; export default function Thread() { const params = useParams<{ host: string; id: string }>(); const { host, id } = params; const { api } = useLocalState((s) => ({ api: s.api })); async function fetchThread() { return await api!.scryThread(host, id); } const { isPending, data, error } = useQuery({ queryKey: ["thread", params.host, params.id], queryFn: fetchThread, enabled: !!api && !!params.host && !!params.id, }); console.log({ data }); if (!params.host || !params.id) { return ; } if (isPending) { return (

Loading Thread...

Loading
); } if (error) { return (

Error Loading Thread

); } if (!data || "error" in data) { return (

Thread Not Found

); } console.log({ data }); // TODO make Composer a modal when in Thread mode return (

Thread

~{params.host} #{params.id}
); } function ChildTree({ node }: { node: FullNode }) { const { threadChildren, replies } = extractThread(node); return ( <>
{threadChildren.map((n) => { return ; })}
{replies.map((n) => ( ))}
); } function ReplyThread({ node }: { node: FullNode }) { // const { threadChildren, replies } = extractThread(node); const { replies } = extractThread(node); return (
{replies.map((r) => ( ))}
); } // function OwnData(props: Props) { // const { api } = useLocalState((s) => ({ // api: s.api, // })); // const { host, id } = props; // async function fetchThread() { // return await api!.scryThread(host, id); // } // const { isLoading, isError, data, refetch } = useQuery({ // queryKey: ["trill-thread", host, id], // queryFn: fetchThread, // }); // return isLoading ? ( //
//
//

Scrying Post, please wait...

// //
//
// ) : null; // } // function SomeoneElses(props: Props) { // // const { api, following } = useLocalState((s) => ({ // // api: s.api, // // following: s.following, // // })); // return
ho
; // }