2023-04-17 10:57:13 +00:00
|
|
|
import useEventFeed from "Feed/EventFeed";
|
|
|
|
import { NostrLink } from "Util";
|
|
|
|
import HyperText from "Element/HyperText";
|
|
|
|
import { FormattedMessage } from "react-intl";
|
2023-04-18 21:20:13 +00:00
|
|
|
import PageSpinner from "Element/PageSpinner";
|
2023-04-17 10:57:13 +00:00
|
|
|
|
|
|
|
export default function NostrFileHeader({ link }: { link: NostrLink }) {
|
|
|
|
const ev = useEventFeed(link);
|
|
|
|
|
2023-04-18 21:20:13 +00:00
|
|
|
if (!ev.data) return <PageSpinner />;
|
2023-04-17 10:57:13 +00:00
|
|
|
|
|
|
|
// assume image or embed which can be rendered by the hypertext kind
|
|
|
|
// todo: make use of hash
|
|
|
|
// todo: use magnet or other links if present
|
2023-04-18 21:20:13 +00:00
|
|
|
const u = ev.data?.tags.find(a => a[0] === "u")?.[1] ?? "";
|
2023-04-17 10:57:13 +00:00
|
|
|
if (u) {
|
2023-04-18 21:20:13 +00:00
|
|
|
return <HyperText link={u} creator={ev.data?.pubkey ?? ""} />;
|
2023-04-17 10:57:13 +00:00
|
|
|
} else {
|
|
|
|
return (
|
|
|
|
<b className="error">
|
2023-04-18 21:20:13 +00:00
|
|
|
<FormattedMessage defaultMessage="Unknown file header: {name}" values={{ name: ev.data?.content }} />
|
2023-04-17 10:57:13 +00:00
|
|
|
</b>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|