import { cache } from "react" interface PreviewData { hash: string uid: string } const getRef = cache((): { current?: PreviewData } => ({ current: undefined, })) /** * Set the preview hash for the current request * * It works kind of like React's context, * but on the server side, per request. * * @param hash */ export function setPreviewData(data?: PreviewData) { getRef().current = data } /** * Get the preview hash set for the current request */ export function getPreviewHash() { return getRef().current?.hash } /** * Check if the current request is a preview by comparing the uid */ export function isPreviewByUid(uid: string) { const data = getRef().current if (data?.hash) { return data.uid === uid } return false }