UNPKG

@mantine/code-highlight

Version:

Code highlight with Mantine theme

31 lines (30 loc) 1.24 kB
"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