opendesk
PublicknowledgeBasePreview.ts
// Settings Preview stores the unsaved look here; `?preview=1` enables it per tab.
export const KNOWLEDGE_BASE_PREVIEW_KEY = "kb:preview";
export type KnowledgeBasePreview = {
banner_image: string;
banner_preset: string;
pinned: string[];
links: { label: string; url: string; open_in_new_tab: boolean }[];
};
export function readKnowledgeBasePreview(): KnowledgeBasePreview | null {
try {
if (new URLSearchParams(location.search).has("preview")) {
sessionStorage.setItem(KNOWLEDGE_BASE_PREVIEW_KEY, "1");
}
if (!sessionStorage.getItem(KNOWLEDGE_BASE_PREVIEW_KEY)) return null;
return JSON.parse(localStorage.getItem(KNOWLEDGE_BASE_PREVIEW_KEY) || "null");
} catch {
return null;
}
}