@mantine/code-highlight
Version:
Code highlight with Mantine theme
31 lines (30 loc) • 1.24 kB
JavaScript
"use client";
const require_plain_text_adapter = require("./adapters/plain-text-adapter.cjs");
let react = require("react");
let react_jsx_runtime = require("react/jsx-runtime");
//#region packages/@mantine/code-highlight/src/CodeHighlightProvider/CodeHighlightProvider.tsx
const CodeHighlightContext = (0, react.createContext)({
adapter: require_plain_text_adapter.plainTextAdapter,
highlight: require_plain_text_adapter.plainTextAdapter.getHighlighter(null)
});
function CodeHighlightAdapterProvider({ adapter, children }) {
const [ctx, setCtx] = (0, react.useState)(null);
const highlight = (0, react.useMemo)(() => adapter.getHighlighter(ctx), [adapter, ctx]);
(0, react.useEffect)(() => {
if (adapter.loadContext) adapter.loadContext().then(setCtx);
}, [adapter]);
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CodeHighlightContext, {
value: {
adapter,
highlight
},
children
});
}
function useHighlight() {
return (0, react.use)(CodeHighlightContext)?.highlight || require_plain_text_adapter.plainTextAdapter.getHighlighter(null);
}
//#endregion
exports.CodeHighlightAdapterProvider = CodeHighlightAdapterProvider;
exports.useHighlight = useHighlight;
//# sourceMappingURL=CodeHighlightProvider.cjs.map