From 396acf3bbbe00a192cb0ea0a9ccf91b1d8d2850b Mon Sep 17 00:00:00 2001
From: Fuwn <50817549+Fuwn@users.noreply.github.com>
Date: Sat, 24 Jan 2026 13:09:50 +0000
Subject: Initial commit
Created from https://vercel.com/new
---
src/app/share/[...shareId]/Footer.tsx | 12 ++++++++++
src/app/share/[...shareId]/Header.tsx | 24 +++++++++++++++++++
src/app/share/[...shareId]/SharePage.tsx | 41 ++++++++++++++++++++++++++++++++
src/app/share/[...shareId]/page.tsx | 7 ++++++
4 files changed, 84 insertions(+)
create mode 100644 src/app/share/[...shareId]/Footer.tsx
create mode 100644 src/app/share/[...shareId]/Header.tsx
create mode 100644 src/app/share/[...shareId]/SharePage.tsx
create mode 100644 src/app/share/[...shareId]/page.tsx
(limited to 'src/app/share')
diff --git a/src/app/share/[...shareId]/Footer.tsx b/src/app/share/[...shareId]/Footer.tsx
new file mode 100644
index 0000000..f294862
--- /dev/null
+++ b/src/app/share/[...shareId]/Footer.tsx
@@ -0,0 +1,12 @@
+import { Row, Text } from '@umami/react-zen';
+import { CURRENT_VERSION, HOMEPAGE_URL } from '@/lib/constants';
+
+export function Footer() {
+ return (
+
+
+ umami {`v${CURRENT_VERSION}`}
+
+
+ );
+}
diff --git a/src/app/share/[...shareId]/Header.tsx b/src/app/share/[...shareId]/Header.tsx
new file mode 100644
index 0000000..d7b7dcb
--- /dev/null
+++ b/src/app/share/[...shareId]/Header.tsx
@@ -0,0 +1,24 @@
+import { Icon, Row, Text, ThemeButton } from '@umami/react-zen';
+import { LanguageButton } from '@/components/input/LanguageButton';
+import { PreferencesButton } from '@/components/input/PreferencesButton';
+import { Logo } from '@/components/svg';
+
+export function Header() {
+ return (
+
+
+
+
+
+
+ umami
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/src/app/share/[...shareId]/SharePage.tsx b/src/app/share/[...shareId]/SharePage.tsx
new file mode 100644
index 0000000..7ed0667
--- /dev/null
+++ b/src/app/share/[...shareId]/SharePage.tsx
@@ -0,0 +1,41 @@
+'use client';
+import { Column, useTheme } from '@umami/react-zen';
+import { useEffect } from 'react';
+import { WebsiteHeader } from '@/app/(main)/websites/[websiteId]/WebsiteHeader';
+import { WebsitePage } from '@/app/(main)/websites/[websiteId]/WebsitePage';
+import { WebsiteProvider } from '@/app/(main)/websites/WebsiteProvider';
+import { PageBody } from '@/components/common/PageBody';
+import { useShareTokenQuery } from '@/components/hooks';
+import { Footer } from './Footer';
+import { Header } from './Header';
+
+export function SharePage({ shareId }) {
+ const { shareToken, isLoading } = useShareTokenQuery(shareId);
+ const { setTheme } = useTheme();
+
+ useEffect(() => {
+ const url = new URL(window?.location?.href);
+ const theme = url.searchParams.get('theme');
+
+ if (theme === 'light' || theme === 'dark') {
+ setTheme(theme);
+ }
+ }, []);
+
+ if (isLoading || !shareToken) {
+ return null;
+ }
+
+ return (
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/src/app/share/[...shareId]/page.tsx b/src/app/share/[...shareId]/page.tsx
new file mode 100644
index 0000000..b9900eb
--- /dev/null
+++ b/src/app/share/[...shareId]/page.tsx
@@ -0,0 +1,7 @@
+import { SharePage } from './SharePage';
+
+export default async function ({ params }: { params: Promise<{ shareId: string[] }> }) {
+ const { shareId } = await params;
+
+ return ;
+}
--
cgit v1.2.3