fix: move embeds from root to embeds.

fix: move embeds from root to `embeds.`
This commit is contained in:
dvelo 2024-12-22 15:20:29 -06:00 committed by GitHub
commit 8a8588c11f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 27 additions and 17 deletions

@ -34,7 +34,7 @@ Set the following variables in the .env.local file:
# Clerk # Clerk
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY="pk_..." NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY="pk_..."
CLERK_SECRET_KEY="sk_..." CLERK_SECRET_KEY="sk_..."
IS_AUTH="true" NEXT_PUBLIC_IS_AUTH="true"
``` ```
## MongoDB ## MongoDB

@ -29,12 +29,10 @@
*/ */
"use client"; "use client";
import { TooltipProvider } from "@/components/ui/tooltip"; import { TooltipProvider } from "@/components/ui/tooltip";
import "../globals.css"; import "../globals.css";
import { ThemeProvider } from "@/components/ThemeProvider"; import { ThemeProvider } from "@/components/ThemeProvider";
import { useSearchParams } from "next/navigation"; import { useSearchParams } from "next/navigation";
import { ClerkThemeProvider } from "@/components/clerk/ClerkThemeProvider";
export default function RootLayout({ export default function RootLayout({
children, children,
@ -44,7 +42,8 @@ export default function RootLayout({
const searchParams = useSearchParams(); const searchParams = useSearchParams();
const search = searchParams?.get("theme") || "light"; const search = searchParams?.get("theme") || "light";
return ( return (
<ClerkThemeProvider> <html lang="en">
<body>
<ThemeProvider <ThemeProvider
attribute="class" attribute="class"
disableTransitionOnChange disableTransitionOnChange
@ -52,6 +51,7 @@ export default function RootLayout({
> >
<TooltipProvider>{children}</TooltipProvider> <TooltipProvider>{children}</TooltipProvider>
</ThemeProvider> </ThemeProvider>
</ClerkThemeProvider> </body>
</html>
); );
} }

@ -44,6 +44,15 @@ export function ClerkThemeProvider({
}) { }) {
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 ( return (
<ClerkProvider <ClerkProvider
appearance={{ baseTheme: theme == "dark" ? dark : undefined }} appearance={{ baseTheme: theme == "dark" ? dark : undefined }}

@ -59,7 +59,7 @@ export default function EmbedSelector({ server }: { server: string }) {
const [selectedCodeType, setSelectedCodeType] = useState("jsx"); const [selectedCodeType, setSelectedCodeType] = useState("jsx");
const [noMinehutBranding, setNoMinehutBranding] = useState(false); const [noMinehutBranding, setNoMinehutBranding] = useState(false);
const clipboard = useClipboard(); const clipboard = useClipboard();
const [url, setURL] = useState(`https://mhsf.app/embed/${server}?`); const [url, setURL] = useState(`https://embeds.mhsf.app/embed/${server}?`);
const [jsxCode, setJsxCode] = useState(`<iframe const [jsxCode, setJsxCode] = useState(`<iframe
src="${url}" src="${url}"
width={390} width={390}
@ -155,7 +155,7 @@ export default function EmbedSelector({ server }: { server: string }) {
onCheckedChange={(c) => { onCheckedChange={(c) => {
setEmbedStatic(c == "indeterminate" ? true : c); setEmbedStatic(c == "indeterminate" ? true : c);
setURL( setURL(
`https://mhsf.app/embed/${server}?${c ? "&static=true" : ""}${ `https://embeds.mhsf.app/embed/${server}?${c ? "&static=true" : ""}${
noMinehutBranding ? "&branding=false" : "" noMinehutBranding ? "&branding=false" : ""
}&theme=${embedTheme}` }&theme=${embedTheme}`
); );
@ -182,7 +182,7 @@ export default function EmbedSelector({ server }: { server: string }) {
onCheckedChange={(c) => { onCheckedChange={(c) => {
setNoMinehutBranding(c == "indeterminate" ? true : c); setNoMinehutBranding(c == "indeterminate" ? true : c);
setURL( setURL(
`https://mhsf.app/embed/${server}?${embedStatic ? "&static=true" : ""}${ `https://embeds.mhsf.app/embed/${server}?${embedStatic ? "&static=true" : ""}${
c ? "&branding=false" : "" c ? "&branding=false" : ""
}&theme=${embedTheme}` }&theme=${embedTheme}`
); );
@ -214,7 +214,7 @@ export default function EmbedSelector({ server }: { server: string }) {
onValueChange={(c) => { onValueChange={(c) => {
setEmbedTheme(c); setEmbedTheme(c);
setURL( setURL(
`https://mhsf.app/embed/${server}?${embedStatic ? "&static=true" : ""}${ `https://embeds.mhsf.app/embed/${server}?${embedStatic ? "&static=true" : ""}${
noMinehutBranding ? "&branding=false" : "" noMinehutBranding ? "&branding=false" : ""
}&theme=${c}` }&theme=${c}`
); );

@ -32,8 +32,9 @@ import { clerkMiddleware, createRouteMatcher } from "@clerk/nextjs/server";
import { NextRequest } from "next/server"; import { NextRequest } from "next/server";
const isProtectedRoute = createRouteMatcher(["/account(.*)"]); const isProtectedRoute = createRouteMatcher(["/account(.*)"]);
const isEmbed = createRouteMatcher(["/emebed(.*)"]);
export default process.env.IS_AUTH == "true" export default process.env.NEXT_PUBLIC_IS_AUTH === "true"
? clerkMiddleware((auth, req) => { ? clerkMiddleware((auth, req) => {
if (isProtectedRoute(req)) auth.protect(); if (isProtectedRoute(req)) auth.protect();
}) })