UNPKG

@mantine/code-highlight

Version:

Code highlight with Mantine theme

36 lines (32 loc) 1.25 kB
'use client'; 'use strict'; var jsxRuntime = require('react/jsx-runtime'); var react = require('react'); var core = require('@mantine/core'); var plainTextAdapter = require('./adapters/plain-text-adapter.cjs'); const [CodeHighlightProvider, useCodeHighlight] = core.createOptionalContext({ adapter: plainTextAdapter.plainTextAdapter, highlight: plainTextAdapter.plainTextAdapter.getHighlighter(null) }); function CodeHighlightAdapterProvider({ adapter, children }) { const [ctx, setCtx] = react.useState(null); const highlight = react.useMemo(() => adapter.getHighlighter(ctx), [adapter, ctx]); react.useEffect(() => { if (adapter.loadContext) { adapter.loadContext().then(setCtx); } }, [adapter]); return /* @__PURE__ */ jsxRuntime.jsx(CodeHighlightProvider, { value: { adapter, highlight }, children }); } function useHighlight() { const ctx = useCodeHighlight(); return ctx?.highlight || plainTextAdapter.plainTextAdapter.getHighlighter(null); } exports.CodeHighlightAdapterProvider = CodeHighlightAdapterProvider; exports.CodeHighlightProvider = CodeHighlightProvider; exports.useCodeHighlight = useCodeHighlight; exports.useHighlight = useHighlight; //# sourceMappingURL=CodeHighlightProvider.cjs.map