108 files: README, marketing copy, page titles, meta tags, footer text, email templates, .env.example, UI strings. URLs swapped from papermark.com/papermark.io to dataroom.hanzo.ai. Internal identifiers left intact per repo policy: localStorage keys (papermark.email/papermark.name/last_papermark_login — changing them logs users out), type field names (papermarkUserId), internal helper symbols (PAPERMARK_HEADERS, PapermarkSparkle component, isPapermarkUrl helper), internal-only filenames. LLM.md retains 'Upstream: Papermark' attribution line. Per-locale .po translations regenerate from source on the next lingui-extract CI run. DB migrations untouched (append-only history; rewriting them breaks installed schemas). LICENSE stays AGPL-3.0.
98 lines
3.4 KiB
TypeScript
98 lines
3.4 KiB
TypeScript
import type { AppProps } from "next/app";
|
|
import { Inter } from "next/font/google";
|
|
import Head from "next/head";
|
|
|
|
import { TeamProvider } from "@/context/team-context";
|
|
import type { Session } from "next-auth";
|
|
import { SessionProvider } from "next-auth/react";
|
|
import { NuqsAdapter } from "nuqs/adapters/next/pages";
|
|
|
|
import { EXCLUDED_PATHS } from "@/lib/constants";
|
|
|
|
import { InsightsCustomProvider } from "@/components/providers/insights-provider";
|
|
import { DealflowPopup } from "@/components/shared/dealflow-popup";
|
|
import { ThemeProvider } from "@/components/theme-provider";
|
|
import { Toaster } from "@/components/ui/sonner";
|
|
import { TooltipProvider } from "@/components/ui/tooltip";
|
|
|
|
import "@/styles/globals.css";
|
|
|
|
const inter = Inter({ subsets: ["latin"] });
|
|
|
|
export default function App({
|
|
Component,
|
|
pageProps: { session, ...pageProps },
|
|
router,
|
|
}: AppProps<{ session: Session }>) {
|
|
return (
|
|
<>
|
|
<Head>
|
|
<title>Hanzo Dataroom | The Open Source DocSend Alternative</title>
|
|
<meta name="theme-color" content="#000000" />
|
|
<meta
|
|
name="description"
|
|
content="Hanzo Dataroom is an open-source document sharing alternative to DocSend with built-in analytics."
|
|
key="description"
|
|
/>
|
|
<meta
|
|
property="og:title"
|
|
content="Hanzo Dataroom | The Open Source DocSend Alternative"
|
|
key="og-title"
|
|
/>
|
|
<meta
|
|
property="og:description"
|
|
content="Hanzo Dataroom is an open-source document sharing alternative to DocSend with built-in analytics."
|
|
key="og-description"
|
|
/>
|
|
<meta
|
|
property="og:image"
|
|
content="https://dataroom.hanzo.ai/_static/meta-image.png"
|
|
key="og-image"
|
|
/>
|
|
<meta
|
|
property="og:url"
|
|
content="https://dataroom.hanzo.ai"
|
|
key="og-url"
|
|
/>
|
|
<meta property="og:type" content="website" />
|
|
<meta name="twitter:card" content="summary_large_image" />
|
|
<meta name="twitter:site" content="@hanzoai" />
|
|
<meta name="twitter:creator" content="@hanzoai" />
|
|
<meta name="twitter:title" content="Hanzo Dataroom" key="tw-title" />
|
|
<meta
|
|
name="twitter:description"
|
|
content="Hanzo Dataroom is an open-source document sharing alternative to DocSend with built-in analytics."
|
|
key="tw-description"
|
|
/>
|
|
<meta
|
|
name="twitter:image"
|
|
content="https://dataroom.hanzo.ai/_static/meta-image.png"
|
|
key="tw-image"
|
|
/>
|
|
<link rel="icon" href="/favicon.ico" key="favicon" />
|
|
</Head>
|
|
<SessionProvider session={session}>
|
|
<InsightsCustomProvider>
|
|
<ThemeProvider attribute="class" defaultTheme="light" enableSystem>
|
|
<NuqsAdapter>
|
|
<main className={inter.className}>
|
|
<Toaster closeButton />
|
|
<TooltipProvider delayDuration={100}>
|
|
{EXCLUDED_PATHS.includes(router.pathname) ? (
|
|
<Component {...pageProps} />
|
|
) : (
|
|
<TeamProvider>
|
|
<Component {...pageProps} />
|
|
<DealflowPopup />
|
|
</TeamProvider>
|
|
)}
|
|
</TooltipProvider>
|
|
</main>
|
|
</NuqsAdapter>
|
|
</ThemeProvider>
|
|
</InsightsCustomProvider>
|
|
</SessionProvider>
|
|
</>
|
|
);
|
|
}
|