@agility/nextjs
Version:
Agility CMS support for NextJS 14 and Next Image
49 lines (48 loc) • 2.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.handlePreview = void 0;
var getParameterByName = function (name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)");
var results = regex.exec(location.search);
return results === null
? ""
: decodeURIComponent(results[1].replace(/\+/g, " "));
};
var handlePreview = function (handlePreviewProps) {
var _a;
var previewUrlToUse = "/api/preview";
if (handlePreviewProps && handlePreviewProps.previewHandlerUrl)
previewUrlToUse = handlePreviewProps.previewHandlerUrl;
if (!process.browser) {
//kickout if this is not being executed in the browser
return false;
}
var agilityPreviewKey = getParameterByName("agilitypreviewkey");
if (!agilityPreviewKey) {
//kickout if we don't have a preview key
return false;
}
//redirect this to our preview API route
var previewAPIRoute = previewUrlToUse;
var slug = window.location.pathname;
//add the other params back onto the slug so that can be used...
var params = new URLSearchParams(window.location.search);
params.delete("agilitypreviewkey");
params.delete("agilityts");
params.delete("AgilityChannelID");
slug = "".concat(slug, "?").concat(params.toString());
var previewAPIUrl = "".concat(previewAPIRoute, "?slug=").concat(encodeURIComponent(slug), "&agilitypreviewkey=").concat(agilityPreviewKey);
var dynamicPageContentID = parseInt((_a = getParameterByName("ContentID")) !== null && _a !== void 0 ? _a : getParameterByName("contentID"));
if (dynamicPageContentID > 0) {
previewAPIUrl += "&ContentID=".concat(dynamicPageContentID);
}
if (console)
console.log("Activating preview", previewAPIUrl);
setTimeout(function () {
//do the redirect
window.location.href = previewAPIUrl;
}, 2500);
return true;
};
exports.handlePreview = handlePreview;