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;
}
}