alinea
Version:
[](https://npmjs.org/package/alinea) [](https://packagephobia.com/result?p=alinea)
47 lines (45 loc) • 1.48 kB
JavaScript
import "../chunks/chunk-U5RRZUYZ.js";
// src/preview/RegisterPreview.ts
import { PreviewAction } from "alinea/preview/PreviewMessage";
function registerPreview(api) {
if (typeof window === "undefined")
return;
function handleMessage(event) {
if (!event.data || typeof event.data !== "object")
return;
const message = event.data;
switch (message.action) {
case PreviewAction.Preview:
console.log("[Alinea preview received]");
api.preview(message);
return;
case PreviewAction.Reload:
console.log("[Alinea preview reload received]");
return location.reload();
case PreviewAction.Previous:
console.log("[Alinea preview previous received]");
return history.back();
case PreviewAction.Next:
console.log("[Alinea preview next received]");
return history.forward();
case PreviewAction.Ping:
console.log("[Alinea preview ping received]");
api.setIsPreviewing(true);
return window.parent.postMessage(
{ action: PreviewAction.Pong },
event.origin
);
}
}
if (window.location != window.parent.location) {
window.parent.postMessage({ action: PreviewAction.Pong }, document.referrer);
addEventListener("message", handleMessage);
console.log("[Alinea preview listener attached]");
}
return () => {
removeEventListener("message", handleMessage);
};
}
export {
registerPreview
};