diff --git a/src/app/(app)/webview/page.tsx b/src/app/(app)/webview/page.tsx new file mode 100644 index 0000000..86ae80d --- /dev/null +++ b/src/app/(app)/webview/page.tsx @@ -0,0 +1,69 @@ +import type { Metadata } from "next"; + +export const metadata: Metadata = { + title: "Web View", +}; + +// Whitelist any URL you'd let staff embed. Empty by default so you can't +// ship a "embed anything" escape hatch by accident. +const ALLOWED: Record = { + hermes: "http://hermeswebui-hyp5v328aptfgh6iwzrr37d6.169.239.180.130.sslip.io", +}; + +type Props = { + searchParams: Promise<{ src?: string }>; +}; + +export default async function WebViewPage({ searchParams }: Props) { + const { src } = await searchParams; + const url = src && ALLOWED[src]; + + return ( +
+
+ External view{src ? `: ${src}` : ""} + {url && ( + + Open in new tab ↗ + + )} +
+
+ {url ? ( +