mirror of
https://github.com/DeveloLongScript/MHSF.git
synced 2026-05-07 18:24:58 -05:00
fix: dates show incorrectly
This commit is contained in:
parent
579ce15832
commit
0a347d3eac
@ -30,12 +30,16 @@ import { useEffectOnce } from "@/lib/useEffectOnce";
|
|||||||
import { useClerk, useUser } from "@clerk/nextjs";
|
import { useClerk, useUser } from "@clerk/nextjs";
|
||||||
import { useRouter } from "@/lib/useRouter";
|
import { useRouter } from "@/lib/useRouter";
|
||||||
import type { SVGProps } from "react";
|
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 IconDisplay from "./IconDisplay";
|
||||||
import ServerSingle from "@/lib/single";
|
import ServerSingle from "@/lib/single";
|
||||||
import toast from "react-hot-toast";
|
import toast from "react-hot-toast";
|
||||||
import { ServerResponse, OnlineServer } from "@/lib/types/mh-server";
|
import { ServerResponse, OnlineServer } from "@/lib/types/mh-server";
|
||||||
import { m } from "framer-motion";
|
|
||||||
import {
|
import {
|
||||||
Dialog,
|
Dialog,
|
||||||
DialogContent,
|
DialogContent,
|
||||||
@ -164,6 +168,8 @@ export function OfflineServerCB() {
|
|||||||
const [obj, setObj] = useState<ServerResponse | object>({});
|
const [obj, setObj] = useState<ServerResponse | object>({});
|
||||||
const [vb, setVB] = useState(false);
|
const [vb, setVB] = useState(false);
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
const [starred, setStarred] = useState(false);
|
||||||
|
const { resolvedTheme } = useTheme();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
events.on("cmd-offline", (info: ServerResponse) => {
|
events.on("cmd-offline", (info: ServerResponse) => {
|
||||||
@ -184,6 +190,7 @@ export function OfflineServerCB() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
isFavorited(info.name).then((b) => setStarred(b));
|
||||||
setVB(false);
|
setVB(false);
|
||||||
setOpen(true);
|
setOpen(true);
|
||||||
setObj(info);
|
setObj(info);
|
||||||
@ -208,6 +215,7 @@ export function OfflineServerCB() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
isFavorited(info.name).then((b) => setStarred(b));
|
||||||
setOpen(true);
|
setOpen(true);
|
||||||
setVB(true);
|
setVB(true);
|
||||||
setObj(info);
|
setObj(info);
|
||||||
@ -258,13 +266,23 @@ export function OfflineServerCB() {
|
|||||||
</CommandItem>
|
</CommandItem>
|
||||||
<CommandItem
|
<CommandItem
|
||||||
onSelect={() => {
|
onSelect={() => {
|
||||||
favoriteServer((obj as ServerResponse).name).then(() =>
|
favoriteServer((obj as ServerResponse).name).then(() => {
|
||||||
toast.success("Done!")
|
setStarred(!starred);
|
||||||
);
|
toast.success("Done!");
|
||||||
|
});
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Star className="mr-2 h-4 w-4" />
|
<Star
|
||||||
Favorite Server
|
className="mr-2 h-4 w-4"
|
||||||
|
fill={
|
||||||
|
starred == true
|
||||||
|
? resolvedTheme == "dark"
|
||||||
|
? "white"
|
||||||
|
: "black"
|
||||||
|
: "transparent"
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
{!starred ? "F" : "Unf"}avorite Server
|
||||||
</CommandItem>
|
</CommandItem>
|
||||||
<CommandItem
|
<CommandItem
|
||||||
onSelect={() =>
|
onSelect={() =>
|
||||||
@ -311,7 +329,9 @@ export function ServerCommandBar() {
|
|||||||
const [obj, setObj] = useState<OnlineServer | object>({});
|
const [obj, setObj] = useState<OnlineServer | object>({});
|
||||||
const [vb, setVB] = useState(false);
|
const [vb, setVB] = useState(false);
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
const { resolvedTheme } = useTheme();
|
||||||
const [owned, setOwned] = useState(false);
|
const [owned, setOwned] = useState(false);
|
||||||
|
const [starred, setStarred] = useState(false);
|
||||||
const [serverSingle, setSingle] = useState<ServerSingle>(
|
const [serverSingle, setSingle] = useState<ServerSingle>(
|
||||||
new ServerSingle(serverName)
|
new ServerSingle(serverName)
|
||||||
);
|
);
|
||||||
@ -321,6 +341,7 @@ export function ServerCommandBar() {
|
|||||||
serverSingle.setName(info.serverName);
|
serverSingle.setName(info.serverName);
|
||||||
if (serverSingle != undefined)
|
if (serverSingle != undefined)
|
||||||
(serverSingle as ServerSingle).init(true).then(() => {
|
(serverSingle as ServerSingle).init(true).then(() => {
|
||||||
|
isFavorited(info.serverName).then((b) => setStarred(b));
|
||||||
setServerName(info.serverName);
|
setServerName(info.serverName);
|
||||||
setObj(info.serverObject);
|
setObj(info.serverObject);
|
||||||
setOpen(true);
|
setOpen(true);
|
||||||
@ -392,11 +413,23 @@ export function ServerCommandBar() {
|
|||||||
</CommandItem>
|
</CommandItem>
|
||||||
<CommandItem
|
<CommandItem
|
||||||
onSelect={() => {
|
onSelect={() => {
|
||||||
favoriteServer(serverName).then(() => toast.success("Done!"));
|
favoriteServer(serverName).then(() => {
|
||||||
|
setStarred(!starred);
|
||||||
|
toast.success("Done!");
|
||||||
|
});
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Star className="mr-2 h-4 w-4" />
|
<Star
|
||||||
Favorite Server
|
className="mr-2 h-4 w-4"
|
||||||
|
fill={
|
||||||
|
starred == true
|
||||||
|
? resolvedTheme == "dark"
|
||||||
|
? "white"
|
||||||
|
: "black"
|
||||||
|
: "transparent"
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
{!starred ? "F" : "Unf"}avorite Server
|
||||||
</CommandItem>
|
</CommandItem>
|
||||||
<CommandItem
|
<CommandItem
|
||||||
onSelect={() =>
|
onSelect={() =>
|
||||||
|
|||||||
@ -41,7 +41,7 @@ export function NewChart({ server }: { server: string }) {
|
|||||||
|
|
||||||
const allNums = { player_count: joins, favorites };
|
const allNums = { player_count: joins, favorites };
|
||||||
useEffectOnce(() => {
|
useEffectOnce(() => {
|
||||||
getShortTermData(server, ["player_count", "favorites", "time"]).then(
|
getShortTermData(server, ["player_count", "favorites", "date"]).then(
|
||||||
(c) => {
|
(c) => {
|
||||||
setChartData(c);
|
setChartData(c);
|
||||||
getCommunityServerFavorites(server).then((b) => setFavorites(b));
|
getCommunityServerFavorites(server).then((b) => setFavorites(b));
|
||||||
@ -101,14 +101,13 @@ export function NewChart({ server }: { server: string }) {
|
|||||||
>
|
>
|
||||||
<CartesianGrid vertical={false} />
|
<CartesianGrid vertical={false} />
|
||||||
<XAxis
|
<XAxis
|
||||||
dataKey="time"
|
dataKey="date"
|
||||||
tickLine={false}
|
tickLine={false}
|
||||||
axisLine={false}
|
axisLine={false}
|
||||||
tickMargin={8}
|
tickMargin={8}
|
||||||
minTickGap={32}
|
minTickGap={32}
|
||||||
tickFormatter={(value) => {
|
tickFormatter={(value) => {
|
||||||
const date = new Date(value);
|
return new Date(value).toLocaleTimeString("en-US", {
|
||||||
return date.toLocaleTimeString("en-US", {
|
|
||||||
timeStyle: "short",
|
timeStyle: "short",
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
|
|||||||
@ -73,7 +73,7 @@ export async function isFavorited(server: string): Promise<boolean> {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
return (await response.json()).data;
|
return (await response.json()).result;
|
||||||
} catch {
|
} catch {
|
||||||
throw Error("Not authenticated with a user.");
|
throw Error("Not authenticated with a user.");
|
||||||
}
|
}
|
||||||
@ -128,7 +128,7 @@ export async function getHistoricalData(
|
|||||||
|
|
||||||
export async function getShortTermData(
|
export async function getShortTermData(
|
||||||
server: string,
|
server: string,
|
||||||
scopes: Array<"player_count" | "favorites" | "server" | "time">
|
scopes: Array<"player_count" | "favorites" | "server" | "date">
|
||||||
): Promise<
|
): Promise<
|
||||||
Array<{
|
Array<{
|
||||||
player_count?: number;
|
player_count?: number;
|
||||||
@ -152,7 +152,7 @@ export async function getShortTermData(
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function getMetaShortTerm(
|
export async function getMetaShortTerm(
|
||||||
scopes: Array<"total_players" | "total_servers" | "unix">
|
scopes: Array<"total_players" | "total_servers" | "date">
|
||||||
): Promise<
|
): Promise<
|
||||||
Array<{
|
Array<{
|
||||||
total_players?: number;
|
total_players?: number;
|
||||||
@ -355,3 +355,27 @@ export async function getCustomization(server: string): Promise<any> {
|
|||||||
throw Error("Error while running API");
|
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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user