From 0a347d3eac6771f52de0807a6906bc8a8fdf92ab Mon Sep 17 00:00:00 2001 From: dvelo <52332868+DeveloLongScript@users.noreply.github.com> Date: Tue, 13 Aug 2024 20:57:37 -0500 Subject: [PATCH] fix: dates show incorrectly --- src/components/CommandBar.tsx | 53 ++++++++++++++++++++++++++++------- src/components/NewChart.tsx | 7 ++--- src/lib/api.ts | 30 ++++++++++++++++++-- 3 files changed, 73 insertions(+), 17 deletions(-) diff --git a/src/components/CommandBar.tsx b/src/components/CommandBar.tsx index c771550..cfb21d5 100644 --- a/src/components/CommandBar.tsx +++ b/src/components/CommandBar.tsx @@ -30,12 +30,16 @@ import { useEffectOnce } from "@/lib/useEffectOnce"; import { useClerk, useUser } from "@clerk/nextjs"; import { useRouter } from "@/lib/useRouter"; import type { SVGProps } from "react"; -import { favoriteServer, getAccountFavorites, serverOwned } from "@/lib/api"; +import { + favoriteServer, + getAccountFavorites, + isFavorited, + serverOwned, +} from "@/lib/api"; import IconDisplay from "./IconDisplay"; import ServerSingle from "@/lib/single"; import toast from "react-hot-toast"; import { ServerResponse, OnlineServer } from "@/lib/types/mh-server"; -import { m } from "framer-motion"; import { Dialog, DialogContent, @@ -164,6 +168,8 @@ export function OfflineServerCB() { const [obj, setObj] = useState({}); const [vb, setVB] = useState(false); const router = useRouter(); + const [starred, setStarred] = useState(false); + const { resolvedTheme } = useTheme(); useEffect(() => { events.on("cmd-offline", (info: ServerResponse) => { @@ -184,6 +190,7 @@ export function OfflineServerCB() { }); }); } else { + isFavorited(info.name).then((b) => setStarred(b)); setVB(false); setOpen(true); setObj(info); @@ -208,6 +215,7 @@ export function OfflineServerCB() { }); }); } else { + isFavorited(info.name).then((b) => setStarred(b)); setOpen(true); setVB(true); setObj(info); @@ -258,13 +266,23 @@ export function OfflineServerCB() { { - favoriteServer((obj as ServerResponse).name).then(() => - toast.success("Done!") - ); + favoriteServer((obj as ServerResponse).name).then(() => { + setStarred(!starred); + toast.success("Done!"); + }); }} > - - Favorite Server + + {!starred ? "F" : "Unf"}avorite Server @@ -311,7 +329,9 @@ export function ServerCommandBar() { const [obj, setObj] = useState({}); const [vb, setVB] = useState(false); const router = useRouter(); + const { resolvedTheme } = useTheme(); const [owned, setOwned] = useState(false); + const [starred, setStarred] = useState(false); const [serverSingle, setSingle] = useState( new ServerSingle(serverName) ); @@ -321,6 +341,7 @@ export function ServerCommandBar() { serverSingle.setName(info.serverName); if (serverSingle != undefined) (serverSingle as ServerSingle).init(true).then(() => { + isFavorited(info.serverName).then((b) => setStarred(b)); setServerName(info.serverName); setObj(info.serverObject); setOpen(true); @@ -392,11 +413,23 @@ export function ServerCommandBar() { { - favoriteServer(serverName).then(() => toast.success("Done!")); + favoriteServer(serverName).then(() => { + setStarred(!starred); + toast.success("Done!"); + }); }} > - - Favorite Server + + {!starred ? "F" : "Unf"}avorite Server diff --git a/src/components/NewChart.tsx b/src/components/NewChart.tsx index 8bf90ff..f4b7100 100644 --- a/src/components/NewChart.tsx +++ b/src/components/NewChart.tsx @@ -41,7 +41,7 @@ export function NewChart({ server }: { server: string }) { const allNums = { player_count: joins, favorites }; useEffectOnce(() => { - getShortTermData(server, ["player_count", "favorites", "time"]).then( + getShortTermData(server, ["player_count", "favorites", "date"]).then( (c) => { setChartData(c); getCommunityServerFavorites(server).then((b) => setFavorites(b)); @@ -101,14 +101,13 @@ export function NewChart({ server }: { server: string }) { > { - const date = new Date(value); - return date.toLocaleTimeString("en-US", { + return new Date(value).toLocaleTimeString("en-US", { timeStyle: "short", }); }} diff --git a/src/lib/api.ts b/src/lib/api.ts index 4c59669..6110f99 100644 --- a/src/lib/api.ts +++ b/src/lib/api.ts @@ -73,7 +73,7 @@ export async function isFavorited(server: string): Promise { } ); - return (await response.json()).data; + return (await response.json()).result; } catch { throw Error("Not authenticated with a user."); } @@ -128,7 +128,7 @@ export async function getHistoricalData( export async function getShortTermData( server: string, - scopes: Array<"player_count" | "favorites" | "server" | "time"> + scopes: Array<"player_count" | "favorites" | "server" | "date"> ): Promise< Array<{ player_count?: number; @@ -152,7 +152,7 @@ export async function getShortTermData( } export async function getMetaShortTerm( - scopes: Array<"total_players" | "total_servers" | "unix"> + scopes: Array<"total_players" | "total_servers" | "date"> ): Promise< Array<{ total_players?: number; @@ -355,3 +355,27 @@ export async function getCustomization(server: string): Promise { throw Error("Error while running API"); } } + +export async function sortedFavorites(): Promise< + Array<{ server: string; favorites: number }> | boolean +> { + try { + const response = await fetch( + connector(`/sorting/favorites`, { version: 0 }), + { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + } + ); + + if (response.status == 400) { + return false; + } + + return (await response.json()).results; + } catch { + throw Error("Error while running API"); + } +}