{desc1}
{desc2}
Upload it here.
'use client';
import { IStream } from "@futureporn/types";
import { IVod } from "@/app/lib/vods";
import Link from "next/link";
import Image from "next/legacy/image";
import { LocalizedDate } from "./localized-date";
import { FontAwesomeIcon, FontAwesomeIconProps } from "@fortawesome/react-fontawesome";
import { faTriangleExclamation, faCircleInfo, faThumbsUp, IconDefinition, faO, faX, faExternalLinkAlt } from "@fortawesome/free-solid-svg-icons";
import { Hemisphere, Moon } from "lunarphase-js";
import { useEffect, useState } from "react";
import { faXTwitter } from "@fortawesome/free-brands-svg-icons";
import { notFound } from "next/navigation";
export interface IStreamProps {
stream: IStream;
}
type Status = 'missing' | 'issue' | 'good';
interface StyleDef {
heading: string;
icon: IconDefinition;
desc1: string;
desc2: string;
}
function capitalizeFirstLetter(string: string): string {
return string.charAt(0).toUpperCase() + string.slice(1);
}
function hasNote(vod: IVod) {
if (!!vod?.note) return true;
else return false;
}
function determineStatus(stream: IStream): Status {
if (stream.vods.length < 1) {
return 'missing'
} else {
if (stream.vods.some((vod: IVod) => !hasNote(vod))) {
return 'good';
} else {
return 'issue';
}
}
}
export default function StreamPage({ stream }: IStreamProps) {
console.log('StreamPage function has been invoked! stream as follows')
console.log(stream)
if (!stream) notFound()
const displayName = stream.vtuber.display_name;
const date = new Date(stream.date);
const [hemisphere, setHemisphere] = useState(Hemisphere.NORTHERN);
const [selectedStatus, setSelectedStatus] = useState NotFound
//
//
//
// {JSON.stringify(stream, null, 2)}
//
//
Description | Details |
---|---|
Announcement | |
Platform | {platformsList} |
UTC Datetime | |
Local Datetime | {date.toLocaleDateString()} {date.toLocaleTimeString()} |
Lunar Phase | {Moon.lunarPhase(date)} {Moon.lunarPhaseEmoji(date, { hemisphere })} |
{desc1}
{desc2}
Upload it here.
ID | Upload Date | {/*Thumbnail | Duration | */}Tags | Timestamps | Note |
---|---|---|---|---|---|---|
{vod.uuid} | {vod.publishedAt} | {/*{(!!vod?.attributes?.thumbnail?.data?.attributes?.cdnUrl) ? |
{(!!vod?.attributes?.duration) ? vod.attributes.duration : | */}
{vod.tagVodRelations.length} | {vod.timestamps.length} | {(!!vod.note) ? |