summaryrefslogtreecommitdiff
path: root/gui/src/components/post/Header.tsx
diff options
context:
space:
mode:
authorpolwex <polwex@sortug.com>2025-10-06 10:13:39 +0700
committerpolwex <polwex@sortug.com>2025-10-06 10:13:39 +0700
commit8751ba26ebf7b7761b9e237f2bf3453623dd1018 (patch)
treedc37f12b3fd9b1a1e7a1b54a51c80697f37a04e8 /gui/src/components/post/Header.tsx
parent6704650dcfccf609ccc203308df9004e0b511bb6 (diff)
added frontend WS connection for demonstration purposes
Diffstat (limited to 'gui/src/components/post/Header.tsx')
-rw-r--r--gui/src/components/post/Header.tsx40
1 files changed, 40 insertions, 0 deletions
diff --git a/gui/src/components/post/Header.tsx b/gui/src/components/post/Header.tsx
new file mode 100644
index 0000000..4e72fe8
--- /dev/null
+++ b/gui/src/components/post/Header.tsx
@@ -0,0 +1,40 @@
+import { date_diff } from "@/logic/utils";
+import type { PostProps } from "./Post";
+import { useLocation } from "wouter";
+import useLocalState from "@/state/state";
+function Header(props: PostProps) {
+ const [_, navigate] = useLocation();
+ const profiles = useLocalState((s) => s.profiles);
+ const profile = profiles.get(props.poast.author);
+ // console.log("profile", profile);
+ // console.log(props.poast.author.length, "length");
+ function go(e: React.MouseEvent) {
+ e.stopPropagation();
+ }
+ function openThread(e: React.MouseEvent) {
+ e.stopPropagation();
+ const sel = window.getSelection()?.toString();
+ if (!sel) navigate(`/feed/${poast.host}/${poast.id}`);
+ }
+ const { poast } = props;
+ const name = profile ? (
+ profile.name
+ ) : (
+ <div className="name cp">
+ <p className="p-only">{poast.author}</p>
+ </div>
+ );
+ return (
+ <header>
+ <div className="author flex-align" role="link" onMouseUp={go}>
+ {name}
+ </div>
+ <div role="link" onMouseUp={openThread} className="date">
+ <p title={new Date(poast.time).toLocaleString()}>
+ {date_diff(poast.time, "short")}
+ </p>
+ </div>
+ </header>
+ );
+}
+export default Header;