fumadocs-core
Version:
The React.js library for building a documentation website
30 lines (28 loc) • 998 B
JavaScript
import { c as visit } from "../../utils-DUvi2WkD.js";
import { useMemo } from "react";
import { jsx } from "react/jsx-runtime";
//#region src/source/client/index.tsx
function deserializePageTree(root) {
function deserializeHTML(html) {
return /* @__PURE__ */ jsx("span", { dangerouslySetInnerHTML: { __html: html } });
}
visit(root, (item) => {
if ("icon" in item && typeof item.icon === "string") item.icon = deserializeHTML(item.icon);
if (typeof item.name === "string") item.name = deserializeHTML(item.name);
});
return root;
}
/**
* Deserialize data passed from server-side loader.
*
* It only receives the serialized data from server-side, hence not sharing plugins and some properties.
*/
function useFumadocsLoader(serialized) {
const { pageTree } = serialized;
return useMemo(() => {
return { pageTree: pageTree ? deserializePageTree(pageTree) : void 0 };
}, [pageTree]);
}
//#endregion
export { deserializePageTree, useFumadocsLoader };
//# sourceMappingURL=index.js.map