diff --git a/src/app/share/[...shareId]/SharePage.tsx b/src/app/share/[...shareId]/SharePage.tsx index 55d3ee9f..c1da2168 100644 --- a/src/app/share/[...shareId]/SharePage.tsx +++ b/src/app/share/[...shareId]/SharePage.tsx @@ -1,15 +1,33 @@ 'use client'; -import { Column } from '@umami/react-zen'; +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 { useLocale, useShareTokenQuery } from '@/components/hooks'; +import { languages } from '@/lib/lang'; import { Footer } from './Footer'; import { Header } from './Header'; export function SharePage({ shareId }) { const { shareToken, isLoading } = useShareTokenQuery(shareId); + const { setTheme } = useTheme(); + const { saveLocale } = useLocale(); + + useEffect(() => { + const url = new URL(window?.location?.href); + const theme = url.searchParams.get('theme'); + const locale = url.searchParams.get('locale'); + + if (theme === 'light' || theme === 'dark') { + setTheme(theme); + } + + if (Object.keys(languages).includes(locale)) { + saveLocale(locale); + } + }, []); if (isLoading || !shareToken) { return null;