import { NostrLink, TaggedNostrEvent } from "@snort/system";
import { lazy, Suspense, useState } from "react";
import { FormattedMessage } from "react-intl";
import { Link } from "react-router-dom";
import Icon from "@/Components/Icons/Icon";
import { findTag } from "@/Utils";
import { extractStreamInfo } from "@/Utils/stream";
import NoteAppHandler from "../Event/Note/NoteAppHandler";
import ProfileImage from "../User/ProfileImage";
const LiveKitRoom = lazy(() => import("./livekit"));
export function LiveEvent({ ev }: { ev: TaggedNostrEvent }) {
const service = ev.tags.find(a => a[0] === "streaming")?.at(1);
function inner() {
if (service?.endsWith(".m3u8")) {
return ;
} else if (service?.startsWith("wss+livekit://")) {
return (
);
}
return ;
}
return inner();
}
function LiveStreamEvent({ ev }: { ev: TaggedNostrEvent }) {
const { title, status, starts, host } = extractStreamInfo(ev);
const [play, setPlay] = useState(false);
function statusLine() {
switch (status) {
case "live": {
return (
);
}
case "ended": {
return (
);
}
case "planned": {
return (
{new Intl.DateTimeFormat(undefined, { dateStyle: "full", timeStyle: "short" }).format(
new Date(Number(starts) * 1000),
)}
);
}
}
}
function cta() {
const link = `https://zap.stream/${NostrLink.fromEvent(ev).encode()}`;
switch (status) {
case "live": {
return (
);
}
case "ended": {
if (findTag(ev, "recording")) {
return (
);
}
}
}
}
if (play) {
const link = `https://zap.stream/embed/${NostrLink.fromEvent(ev).encode()}`;
return (
);
}
return (
);
}