import { ExternalLink } from "lucide-react"; import { Button } from "@/openpress/ui/button"; import { TOOLBAR_ACTION_CLASS, TOOLBAR_ACTION_LABEL_CLASS } from "../toolbarClasses"; export interface ReaderPreviewControlProps { pressSlug?: string | null; } export function ReaderPreviewControl({ pressSlug }: ReaderPreviewControlProps) { const previewUrl = typeof window === "undefined" ? undefined : resolveReaderPreviewUrl(window.location, pressSlug); const label = previewUrl ? "以公開閱讀模式預覽目前內容" : "目前沒有可預覽的 Press"; return ( ); } export function resolveReaderPreviewUrl( location: Pick, pressSlug: string | null | undefined, ): string | undefined { const normalizedPressSlug = pressSlug?.trim().replace(/^\/+|\/+$/g, ""); if (!normalizedPressSlug) return undefined; try { const encodedSlug = normalizedPressSlug .split("/") .map((segment) => encodeURIComponent(segment)) .join("/"); const url = new URL(`/${encodedSlug}/preview`, location.origin); url.searchParams.set("reader", "1"); url.hash = location.hash; return url.toString(); } catch { return undefined; } }