fumadocs-core
Version:
The React.js library for building a documentation website
52 lines (49 loc) • 1.25 kB
JavaScript
'use client';
import { FrameworkProvider } from "./index.js";
import { useMemo } from "react";
import { jsx } from "react/jsx-runtime";
import { Link, useRouter } from "waku";
//#region src/framework/waku.tsx
const framework = {
usePathname() {
const { path } = useRouter();
return path;
},
useParams() {
const { query } = useRouter();
return useMemo(() => {
const params = new URLSearchParams(query);
return Object.fromEntries(Array.from(params.entries()).map(([key, value]) => [key, Array.isArray(value) ? value[0] : value]));
}, [query]);
},
useRouter() {
const router = useRouter();
return useMemo(() => ({
push(url) {
router.push(url);
},
refresh() {
router.push(router.path);
}
}), [router]);
},
Link({ href, prefetch = true, ...props }) {
return /* @__PURE__ */ jsx(Link, {
to: href,
unstable_prefetchOnEnter: prefetch,
...props,
children: props.children
});
}
};
function WakuProvider({ children, Link: CustomLink, Image: CustomImage }) {
return /* @__PURE__ */ jsx(FrameworkProvider, {
...framework,
Link: CustomLink ?? framework.Link,
Image: CustomImage ?? framework.Image,
children
});
}
//#endregion
export { WakuProvider };
//# sourceMappingURL=waku.js.map