pagefind-react
Version:
A pagefind React Component drop-in
52 lines • 2.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PageFind = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const react_1 = require("react");
const PageFind = ({ id }) => {
const loaded = (0, react_1.useRef)(false);
const targetID = id ?? "search";
(0, react_1.useEffect)(() => {
if (!loaded.current) {
loaded.current = true;
let observer;
const PagefindUI = typeof window.PagefindUI !== "undefined" && window.PagefindUI;
if (PagefindUI) {
try {
new PagefindUI({
element: `#${targetID}`,
resetStyles: false,
showImages: false,
showEmptyFilters: false,
});
const pagefindDrawer = document.querySelector(".pagefind-ui__drawer");
if (pagefindDrawer) {
const callback = () => {
const links = document.querySelectorAll(".pagefind-ui__result-link");
for (const link of links) {
link.href = link.href.replace(".html", "");
}
};
observer = new MutationObserver(callback);
observer.observe(pagefindDrawer, {
attributes: false,
childList: true,
subtree: true,
});
}
}
catch (e) {
console.error(e);
}
}
return () => {
if (observer) {
observer.disconnect();
}
};
}
}, [loaded, targetID]);
return (0, jsx_runtime_1.jsx)("div", { id: targetID });
};
exports.PageFind = PageFind;
//# sourceMappingURL=pagefind.js.map