feat: updated server list

This commit is contained in:
dvelo 2024-09-06 20:14:59 -05:00
parent b700391965
commit cf7aaa023a
3 changed files with 51 additions and 12 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

@ -21,6 +21,17 @@ import ThemedToaster from "@/components/misc/ThemedToaster";
import UnofficalDialog from "@/components/misc/UnofficalDialog"; import UnofficalDialog from "@/components/misc/UnofficalDialog";
import ClientFadeIn from "@/components/ClientFadeIn"; import ClientFadeIn from "@/components/ClientFadeIn";
import { BrandingGenericIcon } from "@/components/Icon"; import { BrandingGenericIcon } from "@/components/Icon";
import type { Metadata } from "next";
export const metadata = {
openGraph: {
images: [
{
url: "/branding/meta-banner.png",
},
],
},
} satisfies Metadata;
const inter = interFont({ variable: "--font-inter", subsets: ["latin"] }); const inter = interFont({ variable: "--font-inter", subsets: ["latin"] });
export default async function RootLayout({ export default async function RootLayout({

@ -131,7 +131,7 @@ export default function ServerList() {
const { user, isSignedIn } = useUser(); const { user, isSignedIn } = useUser();
const [pOS, setpOS] = useState(false); const [pOS, setpOS] = useState(false);
const [ipr, setIPR] = useState<string>("4"); const [ipr, setIPR] = useState<string>("4");
const [am, setAM] = useState<boolean>(false); const [am, setAM] = useState(false);
const [filters, setFilters] = useState< const [filters, setFilters] = useState<
Array<(server: OnlineServer) => Promise<boolean>> Array<(server: OnlineServer) => Promise<boolean>>
>([]); >([]);
@ -147,11 +147,12 @@ export default function ServerList() {
useEffect(() => { useEffect(() => {
if (isSignedIn) { if (isSignedIn) {
setAM(true);
console.log(user.publicMetadata); console.log(user.publicMetadata);
setIPR((user.publicMetadata.ipr as string | undefined) || "4"); setIPR((user.publicMetadata.ipr as string | undefined) || "4");
setPadding((user.publicMetadata.pad as string | undefined) || "0"); setPadding((user.publicMetadata.pad as string | undefined) || "0");
setpOS((user.publicMetadata.srv as boolean | undefined) || false); setpOS((user.publicMetadata.srv as boolean | undefined) || false);
setAM(pOS != false || padding != "0" || ipr != "4");
} }
}, [isSignedIn, user]); }, [isSignedIn, user]);
@ -200,7 +201,7 @@ export default function ServerList() {
if (loading) { if (loading) {
return ( return (
<> <div className="p-4">
<SignedIn> <SignedIn>
<div className="md:grid md:grid-cols-3 gap-4 max-lg:grid-cols-2"> <div className="md:grid md:grid-cols-3 gap-4 max-lg:grid-cols-2">
<Skeleton className="h-[112px] rounded-xl" /> <Skeleton className="h-[112px] rounded-xl" />
@ -217,7 +218,7 @@ export default function ServerList() {
<Skeleton className="h-[450px] rounded-xl" /> <Skeleton className="h-[450px] rounded-xl" />
</div> </div>
</SignedIn> </SignedIn>
</> </div>
); );
} }
@ -397,10 +398,10 @@ export default function ServerList() {
<BentoCard key={idx} {...feature} /> <BentoCard key={idx} {...feature} />
))} ))}
</BentoGrid> </BentoGrid>
<Separator />
</div> </div>
)} )}
<Separator />
<br /> <br />
</> </>
</div> </div>
@ -867,7 +868,26 @@ export default function ServerList() {
<MenubarSubContent> <MenubarSubContent>
<MenubarRadioGroup <MenubarRadioGroup
value={padding.toString()} value={padding.toString()}
onValueChange={(v) => setPadding(v)} onValueChange={(v) => {
if (am)
toast(
<span>
These settings will not change over reloads
because you have account specific options enabled
<Button
variant="link"
className="p-0 m-0"
onClick={() =>
router.push("/account/settings/options")
}
>
Change your preferences
</Button>
</span>,
{ icon: "⚠️" }
);
setPadding(v);
}}
> >
<MenubarRadioItem value="0">Default</MenubarRadioItem> <MenubarRadioItem value="0">Default</MenubarRadioItem>
<MenubarSeparator /> <MenubarSeparator />
@ -889,9 +909,9 @@ export default function ServerList() {
<MenubarSubContent> <MenubarSubContent>
<MenubarRadioGroup <MenubarRadioGroup
value="joins" value="joins"
onValueChange={(c) => onValueChange={(c) => {
c == "favorites" && router.push("/sort/favorites") if (c === "favorites") router.push("/sort/favorites");
} }}
> >
<MenubarRadioItem value="joins"> <MenubarRadioItem value="joins">
Players Online Players Online
@ -912,8 +932,16 @@ export default function ServerList() {
View the docs View the docs
</MenubarItem> </MenubarItem>
{am && ( {am && (
<MenubarItem onClick={() => router.push("/account/settings")}> <MenubarItem
Currently using settings in your preferences onClick={() => router.push("/account/settings")}
className="block"
>
Using saved settings in Preferences
<br />
<span className="text-muted-foreground text-xs">
Your using settings stored on your account, that are not
temporary.
</span>
</MenubarItem> </MenubarItem>
)} )}
</MenubarContent> </MenubarContent>