diff --git a/src/app/dashboard/[subdomain]/settings/css/page-component.tsx b/src/app/dashboard/[subdomain]/settings/css/page-component.tsx
index a4845394..83e52a9a 100644
--- a/src/app/dashboard/[subdomain]/settings/css/page-component.tsx
+++ b/src/app/dashboard/[subdomain]/settings/css/page-component.tsx
@@ -4,12 +4,14 @@ import { useParams } from "next/navigation"
import { FC, useEffect, useRef, useState } from "react"
import toast from "react-hot-toast"
+import { useQuery } from "@tanstack/react-query"
+
import { MonacoEditor } from "~/components/common/Monaco"
import { SettingsLayout } from "~/components/dashboard/SettingsLayout"
import { Button } from "~/components/ui/Button"
import { FieldLabel } from "~/components/ui/FieldLabel"
import { useGetState } from "~/hooks/useGetState"
-import { IS_DEV } from "~/lib/constants"
+import { getSiteLink } from "~/lib/helpers"
import { useTranslation } from "~/lib/i18n/client"
import { useGetSite, useUpdateSite } from "~/queries/site"
@@ -108,7 +110,11 @@ export default function SettingsCSSPage() {
/>
-
+
@@ -121,9 +127,21 @@ export default function SettingsCSSPage() {
const PreviewButton: FC<{
css: string
subdomain: string
-}> = ({ css, subdomain }) => {
+ custom_domain?: string
+}> = ({ css, subdomain, custom_domain }) => {
const { t } = useTranslation("dashboard")
+ const { data: siteLink } = useQuery({
+ queryKey: ["site_link", subdomain],
+
+ queryFn: async () => {
+ return getSiteLink({
+ subdomain,
+ domain: custom_domain,
+ })
+ },
+ })
+
const datasetRef = useRef({
previewWindowOrigin: "",
previewWindow: null as null | Window,
@@ -131,14 +149,10 @@ const PreviewButton: FC<{
const [isInPreview, setIsPreview] = useState(false)
const handlePreview = () => {
- let url: URL
-
- if (IS_DEV) {
- url = new URL(`http://${subdomain}.localhost:2222/`)
- } else {
- url = new URL(location.href)
- // TODO
+ if (!siteLink) {
+ return
}
+ let url: URL = new URL(siteLink)
url.searchParams.set("origin", location.origin)
url.searchParams.set("css-preview", "true")
diff --git a/src/app/site/[site]/[slug]/page.tsx b/src/app/site/[site]/[slug]/page.tsx
index 7cc513aa..ba5677f4 100644
--- a/src/app/site/[site]/[slug]/page.tsx
+++ b/src/app/site/[site]/[slug]/page.tsx
@@ -5,7 +5,6 @@ import serialize from "serialize-javascript"
import { Hydrate, dehydrate } from "@tanstack/react-query"
import PageContent from "~/components/common/PageContent"
-import { CSSPreviewConnect } from "~/components/site/CSSPreviewConnect"
import { OIAButton } from "~/components/site/OIAButton"
import { PostFooter } from "~/components/site/PostFooter"
import PostMeta from "~/components/site/PostMeta"
@@ -188,7 +187,6 @@ export default async function SitePagePage({
{page?.metadata &&
}
)}
-
)
}
diff --git a/src/app/site/[site]/layout.tsx b/src/app/site/[site]/layout.tsx
index 77286ab7..5f0a7dea 100644
--- a/src/app/site/[site]/layout.tsx
+++ b/src/app/site/[site]/layout.tsx
@@ -6,8 +6,8 @@ import { Hydrate, dehydrate } from "@tanstack/react-query"
import { BlockchainInfo } from "~/components/common/BlockchainInfo"
import { SitePlayerContainer } from "~/components/common/SitePlayer"
-import Style from "~/components/common/Style"
import { BackToTopFAB } from "~/components/site/BackToTopFAB"
+import { CustomSiteStyle } from "~/components/site/CustomSiteStyle"
import SiteFooter from "~/components/site/SiteFooter"
import { SiteHeader } from "~/components/site/SiteHeader"
import { FABContainer } from "~/components/ui/FAB"
@@ -169,7 +169,7 @@ export default async function SiteLayout({
-
+
{colors?.light && colors?.dark && (