"use client";
import { useState, useEffect } from "react";
import { Spinner } from "./ui/spinner";
import {
Card,
CardContent,
CardDescription,
CardFooter,
CardHeader,
CardTitle,
BetterHeader,
} from "@/components/ui/card";
import { motion } from "framer-motion";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "@/components/ui/tooltip";
import { Badge } from "./ui/badge";
import ServerSingle from "@/lib/single";
import { SignedIn, SignedOut } from "@clerk/nextjs";
import SignInPopoverButton from "./clerk/SignInPopoverButton";
import { Star, X } from "lucide-react";
import { favoriteServer, isFavorited } from "@/lib/api";
import { LoadingButton } from "./ui/loading-button";
import { useTheme } from "next-themes";
export default function ServerView(props: { server: string }) {
const [single, setSingle] = useState(new ServerSingle(props.server));
const [loading, setLoading] = useState(true);
const [favorited, setFavorited] = useState(false);
const { resolvedTheme } = useTheme();
const [loadingFavorite, setLoadingFavorite] = useState(false);
const [randomText, setRandomText] = useState("");
const [lastOnline, setLastOnline] = useState(0);
const [format, setFormat] = useState("");
const [description, setDescription] = useState("");
const allText = [""];
const getRandomText = () => {
return allText[Math.floor(Math.random() * allText.length)];
};
useEffect(() => {
setRandomText(getRandomText());
single.init().then(() => {
isFavorited(single.grabOffline()?.name as string)
.then((b) => {
setFavorited(b);
setLoading(false);
var online = single.grabOffline()?.last_online;
if (online != undefined) {
setLastOnline(online);
}
})
.catch(() => {
setLoading(false);
var online = single.grabOffline()?.last_online;
if (online != undefined) {
setLastOnline(online);
}
});
});
}, []);
if (loading) {
return (
<>
This means that the server can{"'"}t loading some resources, like tags, icons and authors. However, all historical data still is stored and works.
(GMT) Monday, January 1, 2024 6:00:00 AM,
by {single.getAuthor()}
)}
Time:
Last online{" "}
{timeConverter(single.grabOffline()?.last_online)}
{single.grabOffline()?.last_online} in Unix time
Created on{" "}
{timeConverter(single.grabOffline()?.creation)}
{single.grabOffline()?.creation} in Unix time