mirror of
https://github.com/DeveloLongScript/MHSF.git
synced 2026-05-09 09:44:58 -05:00
Compare commits
No commits in common. "8a8588c11f48ccad32f4fbf6606e22226f3c5836" and "7cc8671448c2b83f722e248bbf3fee38c4ad0bf2" have entirely different histories.
8a8588c11f
...
7cc8671448
@ -34,7 +34,7 @@ Set the following variables in the .env.local file:
|
||||
# Clerk
|
||||
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY="pk_..."
|
||||
CLERK_SECRET_KEY="sk_..."
|
||||
NEXT_PUBLIC_IS_AUTH="true"
|
||||
IS_AUTH="true"
|
||||
```
|
||||
|
||||
## MongoDB
|
||||
|
||||
@ -29,6 +29,7 @@
|
||||
*/
|
||||
|
||||
"use client";
|
||||
|
||||
import { TooltipProvider } from "@/components/ui/tooltip";
|
||||
import "../globals.css";
|
||||
import { ThemeProvider } from "@/components/ThemeProvider";
|
||||
|
||||
@ -36,53 +36,44 @@ import { type ReactNode, useEffect, useState } from "react";
|
||||
import { ThemeProvider } from "../ThemeProvider";
|
||||
|
||||
export function ClerkThemeProvider({
|
||||
children,
|
||||
className,
|
||||
children,
|
||||
className,
|
||||
}: {
|
||||
children?: ReactNode | ReactNode[];
|
||||
className?: string | undefined;
|
||||
children: ReactNode | ReactNode[];
|
||||
className: string | undefined;
|
||||
}) {
|
||||
const [theme, setTheme] = useState<string | undefined>("");
|
||||
const [theme, setTheme] = useState<string | undefined>("");
|
||||
|
||||
if (process.env.NEXT_PUBLIC_IS_AUTH !== "true")
|
||||
return (
|
||||
<html lang="en" className={className}>
|
||||
<body>
|
||||
Non-authenticated environments are disallowed on this origin.
|
||||
</body>
|
||||
</html>
|
||||
);
|
||||
|
||||
return (
|
||||
<ClerkProvider
|
||||
appearance={{ baseTheme: theme == "dark" ? dark : undefined }}
|
||||
>
|
||||
<html lang="en" className={className}>
|
||||
<body>
|
||||
<ThemeProvider
|
||||
attribute="class"
|
||||
defaultTheme="system"
|
||||
enableSystem
|
||||
disableTransitionOnChange
|
||||
>
|
||||
{children}
|
||||
{/** This *has* to be implemented in component form for the `useTheme` to load at the appropriate time. */}
|
||||
<ThemeElement setTheme={setTheme} />
|
||||
</ThemeProvider>
|
||||
</body>
|
||||
</html>
|
||||
</ClerkProvider>
|
||||
);
|
||||
return (
|
||||
<ClerkProvider
|
||||
appearance={{ baseTheme: theme == "dark" ? dark : undefined }}
|
||||
>
|
||||
<html lang="en" className={className}>
|
||||
<body>
|
||||
<ThemeProvider
|
||||
attribute="class"
|
||||
defaultTheme="system"
|
||||
enableSystem
|
||||
disableTransitionOnChange
|
||||
>
|
||||
{children}
|
||||
{/** This *has* to be implemented in component form for the `useTheme` to load at the appropriate time. */}
|
||||
<ThemeElement setTheme={setTheme} />
|
||||
</ThemeProvider>
|
||||
</body>
|
||||
</html>
|
||||
</ClerkProvider>
|
||||
);
|
||||
}
|
||||
|
||||
function ThemeElement({
|
||||
setTheme,
|
||||
setTheme,
|
||||
}: {
|
||||
setTheme: (update: string | undefined) => void;
|
||||
setTheme: (update: string | undefined) => void;
|
||||
}) {
|
||||
const theme = useTheme();
|
||||
useEffect(() => {
|
||||
setTheme(theme.resolvedTheme);
|
||||
}, [theme.resolvedTheme, setTheme]);
|
||||
return <></>;
|
||||
const theme = useTheme();
|
||||
useEffect(() => {
|
||||
setTheme(theme.resolvedTheme);
|
||||
}, [theme.resolvedTheme, setTheme]);
|
||||
return <></>;
|
||||
}
|
||||
|
||||
@ -59,7 +59,7 @@ export default function EmbedSelector({ server }: { server: string }) {
|
||||
const [selectedCodeType, setSelectedCodeType] = useState("jsx");
|
||||
const [noMinehutBranding, setNoMinehutBranding] = useState(false);
|
||||
const clipboard = useClipboard();
|
||||
const [url, setURL] = useState(`https://embeds.mhsf.app/embed/${server}?`);
|
||||
const [url, setURL] = useState(`https://mhsf.app/embed/${server}?`);
|
||||
const [jsxCode, setJsxCode] = useState(`<iframe
|
||||
src="${url}"
|
||||
width={390}
|
||||
@ -155,7 +155,7 @@ export default function EmbedSelector({ server }: { server: string }) {
|
||||
onCheckedChange={(c) => {
|
||||
setEmbedStatic(c == "indeterminate" ? true : c);
|
||||
setURL(
|
||||
`https://embeds.mhsf.app/embed/${server}?${c ? "&static=true" : ""}${
|
||||
`https://mhsf.app/embed/${server}?${c ? "&static=true" : ""}${
|
||||
noMinehutBranding ? "&branding=false" : ""
|
||||
}&theme=${embedTheme}`
|
||||
);
|
||||
@ -182,7 +182,7 @@ export default function EmbedSelector({ server }: { server: string }) {
|
||||
onCheckedChange={(c) => {
|
||||
setNoMinehutBranding(c == "indeterminate" ? true : c);
|
||||
setURL(
|
||||
`https://embeds.mhsf.app/embed/${server}?${embedStatic ? "&static=true" : ""}${
|
||||
`https://mhsf.app/embed/${server}?${embedStatic ? "&static=true" : ""}${
|
||||
c ? "&branding=false" : ""
|
||||
}&theme=${embedTheme}`
|
||||
);
|
||||
@ -214,7 +214,7 @@ export default function EmbedSelector({ server }: { server: string }) {
|
||||
onValueChange={(c) => {
|
||||
setEmbedTheme(c);
|
||||
setURL(
|
||||
`https://embeds.mhsf.app/embed/${server}?${embedStatic ? "&static=true" : ""}${
|
||||
`https://mhsf.app/embed/${server}?${embedStatic ? "&static=true" : ""}${
|
||||
noMinehutBranding ? "&branding=false" : ""
|
||||
}&theme=${c}`
|
||||
);
|
||||
|
||||
@ -32,9 +32,8 @@ import { clerkMiddleware, createRouteMatcher } from "@clerk/nextjs/server";
|
||||
import { NextRequest } from "next/server";
|
||||
|
||||
const isProtectedRoute = createRouteMatcher(["/account(.*)"]);
|
||||
const isEmbed = createRouteMatcher(["/emebed(.*)"]);
|
||||
|
||||
export default process.env.NEXT_PUBLIC_IS_AUTH === "true"
|
||||
export default process.env.IS_AUTH == "true"
|
||||
? clerkMiddleware((auth, req) => {
|
||||
if (isProtectedRoute(req)) auth.protect();
|
||||
})
|
||||
|
||||
Loading…
Reference in New Issue
Block a user