import type { PostID, Poast, Reference } from "@/types/trill"; import Header from "./Header"; import Body from "./Body"; import Footer from "./Footer"; import { useLocation } from "wouter"; import useLocalState from "@/state/state"; import RP from "./RP"; import UserModal from "../modals/UserModal"; import type { Ship } from "@/types/urbit"; import Sigil from "../Sigil"; import type { UserProfile, UserType } from "@/types/nostrill"; export interface PostProps { poast: Poast; user: UserType; fake?: boolean; rter?: Ship; rtat?: number; rtid?: PostID; nest?: number; refetch?: Function; profile?: UserProfile; } function Post(props: PostProps) { // console.log("post", props); const { poast } = props; if (!poast || poast.contents === null) { return null; } const isRP = poast.contents.length === 1 && "ref" in poast.contents[0] && poast.contents[0].ref.type === "trill"; if (isRP) { const ref = (poast.contents[0] as Reference).ref; return ( ); } else return ; } export default Post; function TrillPost(props: PostProps) { const { poast, profile, fake } = props; const setModal = useLocalState((s) => s.setModal); const [_, navigate] = useLocation(); function openThread(_e: React.MouseEvent) { const sel = window.getSelection()?.toString(); const id = "urbit" in props.user ? poast.id : poast.hash; const path = `/t/${poast.host}/${id}`; if (poast.hash.includes("000000")) { console.log("bad hash", poast); return; } if (!sel) navigate(path); } function openModal(e: React.MouseEvent) { e.stopPropagation(); setModal(); } const avatar = profile ? (
) : (
); return (
{avatar}
{!fake &&
); }