react-native-nitro-markdown 0.4.2 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +605 -318
- package/android/src/main/java/com/margelo/nitro/com/nitromarkdown/HybridMarkdownSession.kt +27 -8
- package/cpp/bindings/HybridMarkdownParser.cpp +216 -66
- package/cpp/bindings/HybridMarkdownParser.hpp +2 -0
- package/ios/HybridMarkdownSession.swift +33 -7
- package/lib/commonjs/MarkdownContext.js +2 -1
- package/lib/commonjs/MarkdownContext.js.map +1 -1
- package/lib/commonjs/headless.js +41 -5
- package/lib/commonjs/headless.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/markdown-stream.js +109 -13
- package/lib/commonjs/markdown-stream.js.map +1 -1
- package/lib/commonjs/markdown.js +215 -44
- package/lib/commonjs/markdown.js.map +1 -1
- package/lib/commonjs/renderers/code.js +4 -3
- package/lib/commonjs/renderers/code.js.map +1 -1
- package/lib/commonjs/renderers/heading.js +1 -1
- package/lib/commonjs/renderers/heading.js.map +1 -1
- package/lib/commonjs/renderers/image.js +7 -5
- package/lib/commonjs/renderers/image.js.map +1 -1
- package/lib/commonjs/renderers/link.js +15 -3
- package/lib/commonjs/renderers/link.js.map +1 -1
- package/lib/commonjs/renderers/list.js +2 -2
- package/lib/commonjs/renderers/list.js.map +1 -1
- package/lib/commonjs/renderers/table.js +126 -21
- package/lib/commonjs/renderers/table.js.map +1 -1
- package/lib/commonjs/use-markdown-stream.js +16 -14
- package/lib/commonjs/use-markdown-stream.js.map +1 -1
- package/lib/commonjs/utils/incremental-ast.js +153 -0
- package/lib/commonjs/utils/incremental-ast.js.map +1 -0
- package/lib/commonjs/utils/link-security.js +21 -0
- package/lib/commonjs/utils/link-security.js.map +1 -0
- package/lib/commonjs/utils/stream-timeline.js +62 -0
- package/lib/commonjs/utils/stream-timeline.js.map +1 -0
- package/lib/module/MarkdownContext.js +2 -1
- package/lib/module/MarkdownContext.js.map +1 -1
- package/lib/module/headless.js +37 -4
- package/lib/module/headless.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/markdown-stream.js +110 -14
- package/lib/module/markdown-stream.js.map +1 -1
- package/lib/module/markdown.js +217 -46
- package/lib/module/markdown.js.map +1 -1
- package/lib/module/renderers/blockquote.js.map +1 -1
- package/lib/module/renderers/code.js +4 -3
- package/lib/module/renderers/code.js.map +1 -1
- package/lib/module/renderers/heading.js +1 -1
- package/lib/module/renderers/heading.js.map +1 -1
- package/lib/module/renderers/image.js +7 -5
- package/lib/module/renderers/image.js.map +1 -1
- package/lib/module/renderers/link.js +15 -3
- package/lib/module/renderers/link.js.map +1 -1
- package/lib/module/renderers/list.js +2 -2
- package/lib/module/renderers/list.js.map +1 -1
- package/lib/module/renderers/paragraph.js.map +1 -1
- package/lib/module/renderers/table.js +127 -22
- package/lib/module/renderers/table.js.map +1 -1
- package/lib/module/use-markdown-stream.js +16 -14
- package/lib/module/use-markdown-stream.js.map +1 -1
- package/lib/module/utils/incremental-ast.js +147 -0
- package/lib/module/utils/incremental-ast.js.map +1 -0
- package/lib/module/utils/link-security.js +15 -0
- package/lib/module/utils/link-security.js.map +1 -0
- package/lib/module/utils/stream-timeline.js +56 -0
- package/lib/module/utils/stream-timeline.js.map +1 -0
- package/lib/typescript/commonjs/Markdown.nitro.d.ts +5 -3
- package/lib/typescript/commonjs/Markdown.nitro.d.ts.map +1 -1
- package/lib/typescript/commonjs/MarkdownContext.d.ts +26 -25
- package/lib/typescript/commonjs/MarkdownContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/headless.d.ts +15 -2
- package/lib/typescript/commonjs/headless.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +3 -1
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/markdown-stream.d.ts +7 -2
- package/lib/typescript/commonjs/markdown-stream.d.ts.map +1 -1
- package/lib/typescript/commonjs/markdown.d.ts +62 -5
- package/lib/typescript/commonjs/markdown.d.ts.map +1 -1
- package/lib/typescript/commonjs/renderers/blockquote.d.ts +3 -3
- package/lib/typescript/commonjs/renderers/blockquote.d.ts.map +1 -1
- package/lib/typescript/commonjs/renderers/code.d.ts +5 -5
- package/lib/typescript/commonjs/renderers/code.d.ts.map +1 -1
- package/lib/typescript/commonjs/renderers/heading.d.ts +3 -3
- package/lib/typescript/commonjs/renderers/heading.d.ts.map +1 -1
- package/lib/typescript/commonjs/renderers/horizontal-rule.d.ts +2 -2
- package/lib/typescript/commonjs/renderers/horizontal-rule.d.ts.map +1 -1
- package/lib/typescript/commonjs/renderers/image.d.ts +2 -2
- package/lib/typescript/commonjs/renderers/image.d.ts.map +1 -1
- package/lib/typescript/commonjs/renderers/link.d.ts +3 -3
- package/lib/typescript/commonjs/renderers/link.d.ts.map +1 -1
- package/lib/typescript/commonjs/renderers/list.d.ts +7 -7
- package/lib/typescript/commonjs/renderers/list.d.ts.map +1 -1
- package/lib/typescript/commonjs/renderers/math.d.ts +4 -4
- package/lib/typescript/commonjs/renderers/math.d.ts.map +1 -1
- package/lib/typescript/commonjs/renderers/paragraph.d.ts +3 -3
- package/lib/typescript/commonjs/renderers/paragraph.d.ts.map +1 -1
- package/lib/typescript/commonjs/renderers/table.d.ts +3 -3
- package/lib/typescript/commonjs/renderers/table.d.ts.map +1 -1
- package/lib/typescript/commonjs/specs/MarkdownSession.nitro.d.ts +5 -2
- package/lib/typescript/commonjs/specs/MarkdownSession.nitro.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme.d.ts +2 -2
- package/lib/typescript/commonjs/theme.d.ts.map +1 -1
- package/lib/typescript/commonjs/use-markdown-stream.d.ts.map +1 -1
- package/lib/typescript/commonjs/utils/incremental-ast.d.ts +12 -0
- package/lib/typescript/commonjs/utils/incremental-ast.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils/link-security.d.ts +3 -0
- package/lib/typescript/commonjs/utils/link-security.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils/stream-timeline.d.ts +11 -0
- package/lib/typescript/commonjs/utils/stream-timeline.d.ts.map +1 -0
- package/lib/typescript/module/Markdown.nitro.d.ts +5 -3
- package/lib/typescript/module/Markdown.nitro.d.ts.map +1 -1
- package/lib/typescript/module/MarkdownContext.d.ts +26 -25
- package/lib/typescript/module/MarkdownContext.d.ts.map +1 -1
- package/lib/typescript/module/headless.d.ts +15 -2
- package/lib/typescript/module/headless.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +3 -1
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/markdown-stream.d.ts +7 -2
- package/lib/typescript/module/markdown-stream.d.ts.map +1 -1
- package/lib/typescript/module/markdown.d.ts +62 -5
- package/lib/typescript/module/markdown.d.ts.map +1 -1
- package/lib/typescript/module/renderers/blockquote.d.ts +3 -3
- package/lib/typescript/module/renderers/blockquote.d.ts.map +1 -1
- package/lib/typescript/module/renderers/code.d.ts +5 -5
- package/lib/typescript/module/renderers/code.d.ts.map +1 -1
- package/lib/typescript/module/renderers/heading.d.ts +3 -3
- package/lib/typescript/module/renderers/heading.d.ts.map +1 -1
- package/lib/typescript/module/renderers/horizontal-rule.d.ts +2 -2
- package/lib/typescript/module/renderers/horizontal-rule.d.ts.map +1 -1
- package/lib/typescript/module/renderers/image.d.ts +2 -2
- package/lib/typescript/module/renderers/image.d.ts.map +1 -1
- package/lib/typescript/module/renderers/link.d.ts +3 -3
- package/lib/typescript/module/renderers/link.d.ts.map +1 -1
- package/lib/typescript/module/renderers/list.d.ts +7 -7
- package/lib/typescript/module/renderers/list.d.ts.map +1 -1
- package/lib/typescript/module/renderers/math.d.ts +4 -4
- package/lib/typescript/module/renderers/math.d.ts.map +1 -1
- package/lib/typescript/module/renderers/paragraph.d.ts +3 -3
- package/lib/typescript/module/renderers/paragraph.d.ts.map +1 -1
- package/lib/typescript/module/renderers/table.d.ts +3 -3
- package/lib/typescript/module/renderers/table.d.ts.map +1 -1
- package/lib/typescript/module/specs/MarkdownSession.nitro.d.ts +5 -2
- package/lib/typescript/module/specs/MarkdownSession.nitro.d.ts.map +1 -1
- package/lib/typescript/module/theme.d.ts +2 -2
- package/lib/typescript/module/theme.d.ts.map +1 -1
- package/lib/typescript/module/use-markdown-stream.d.ts.map +1 -1
- package/lib/typescript/module/utils/incremental-ast.d.ts +12 -0
- package/lib/typescript/module/utils/incremental-ast.d.ts.map +1 -0
- package/lib/typescript/module/utils/link-security.d.ts +3 -0
- package/lib/typescript/module/utils/link-security.d.ts.map +1 -0
- package/lib/typescript/module/utils/stream-timeline.d.ts +11 -0
- package/lib/typescript/module/utils/stream-timeline.d.ts.map +1 -0
- package/nitrogen/generated/android/NitroMarkdownOnLoad.cpp +2 -0
- package/nitrogen/generated/android/c++/JFunc_void_double_double.hpp +75 -0
- package/nitrogen/generated/android/c++/JHybridMarkdownSessionSpec.cpp +18 -6
- package/nitrogen/generated/android/c++/JHybridMarkdownSessionSpec.hpp +4 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/com/nitromarkdown/Func_void_double_double.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/com/nitromarkdown/HybridMarkdownSessionSpec.kt +11 -3
- package/nitrogen/generated/ios/NitroMarkdown-Swift-Cxx-Bridge.cpp +8 -0
- package/nitrogen/generated/ios/NitroMarkdown-Swift-Cxx-Bridge.hpp +31 -0
- package/nitrogen/generated/ios/c++/HybridMarkdownSessionSpecSwift.hpp +20 -2
- package/nitrogen/generated/ios/swift/Func_void.swift +0 -1
- package/nitrogen/generated/ios/swift/Func_void_double_double.swift +46 -0
- package/nitrogen/generated/ios/swift/HybridMarkdownSessionSpec.swift +4 -3
- package/nitrogen/generated/ios/swift/HybridMarkdownSessionSpec_cxx.swift +34 -10
- package/nitrogen/generated/shared/c++/HybridMarkdownParserSpec.cpp +2 -0
- package/nitrogen/generated/shared/c++/HybridMarkdownParserSpec.hpp +2 -0
- package/nitrogen/generated/shared/c++/HybridMarkdownSessionSpec.cpp +2 -0
- package/nitrogen/generated/shared/c++/HybridMarkdownSessionSpec.hpp +4 -2
- package/package.json +7 -5
- package/src/Markdown.nitro.ts +7 -3
- package/src/MarkdownContext.ts +31 -25
- package/src/headless.ts +44 -6
- package/src/index.ts +8 -0
- package/src/markdown-stream.tsx +159 -15
- package/src/markdown.tsx +406 -50
- package/src/renderers/blockquote.tsx +4 -4
- package/src/renderers/code.tsx +16 -10
- package/src/renderers/heading.tsx +4 -4
- package/src/renderers/horizontal-rule.tsx +3 -3
- package/src/renderers/image.tsx +11 -9
- package/src/renderers/link.tsx +25 -7
- package/src/renderers/list.tsx +9 -12
- package/src/renderers/math.tsx +4 -4
- package/src/renderers/paragraph.tsx +3 -3
- package/src/renderers/table.tsx +270 -98
- package/src/specs/MarkdownSession.nitro.ts +6 -2
- package/src/theme.ts +3 -3
- package/src/use-markdown-stream.ts +22 -16
- package/src/utils/incremental-ast.ts +224 -0
- package/src/utils/link-security.ts +22 -0
- package/src/utils/stream-timeline.ts +72 -0
|
@@ -6,7 +6,35 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.MarkdownStream = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _markdown = require("./markdown.js");
|
|
9
|
+
var _incrementalAst = require("./utils/incremental-ast.js");
|
|
9
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
const normalizeOffset = value => {
|
|
12
|
+
if (!Number.isFinite(value)) return null;
|
|
13
|
+
if (value <= 0) return 0;
|
|
14
|
+
return Math.floor(value);
|
|
15
|
+
};
|
|
16
|
+
const resolveStreamText = ({
|
|
17
|
+
forceFullSync,
|
|
18
|
+
pendingFrom,
|
|
19
|
+
pendingTo,
|
|
20
|
+
previousText,
|
|
21
|
+
session
|
|
22
|
+
}) => {
|
|
23
|
+
if (forceFullSync || pendingFrom === null || pendingTo === null) {
|
|
24
|
+
return session.getAllText();
|
|
25
|
+
}
|
|
26
|
+
if (pendingTo < pendingFrom) {
|
|
27
|
+
return session.getAllText();
|
|
28
|
+
}
|
|
29
|
+
if (pendingFrom === previousText.length) {
|
|
30
|
+
const appendedChunk = session.getTextRange(pendingFrom, pendingTo);
|
|
31
|
+
return `${previousText}${appendedChunk}`;
|
|
32
|
+
}
|
|
33
|
+
if (pendingFrom === 0) {
|
|
34
|
+
return session.getTextRange(0, pendingTo);
|
|
35
|
+
}
|
|
36
|
+
return session.getAllText();
|
|
37
|
+
};
|
|
10
38
|
/**
|
|
11
39
|
* A component that renders streaming Markdown from a MarkdownSession.
|
|
12
40
|
* It efficiently subscribes to session updates to minimize parent re-renders.
|
|
@@ -16,18 +44,47 @@ const MarkdownStream = ({
|
|
|
16
44
|
updateIntervalMs = 50,
|
|
17
45
|
updateStrategy = "interval",
|
|
18
46
|
useTransitionUpdates = false,
|
|
47
|
+
incrementalParsing = true,
|
|
48
|
+
options,
|
|
49
|
+
plugins,
|
|
19
50
|
...props
|
|
20
51
|
}) => {
|
|
21
|
-
const
|
|
52
|
+
const parseText = (0, _react.useCallback)(text => (0, _incrementalAst.parseMarkdownAst)(text, options), [options]);
|
|
53
|
+
const createEmptyAst = () => ({
|
|
54
|
+
type: "document",
|
|
55
|
+
children: []
|
|
56
|
+
});
|
|
57
|
+
const initialText = session.getAllText();
|
|
58
|
+
const hasBeforeParsePlugins = plugins?.some(plugin => typeof plugin.beforeParse === "function") ?? false;
|
|
59
|
+
const [renderState, setRenderState] = (0, _react.useState)(() => ({
|
|
60
|
+
text: initialText,
|
|
61
|
+
ast: hasBeforeParsePlugins ? createEmptyAst() : parseText(initialText)
|
|
62
|
+
}));
|
|
63
|
+
const renderStateRef = (0, _react.useRef)(renderState);
|
|
22
64
|
const pendingUpdateRef = (0, _react.useRef)(false);
|
|
65
|
+
const pendingFromRef = (0, _react.useRef)(null);
|
|
66
|
+
const pendingToRef = (0, _react.useRef)(null);
|
|
67
|
+
const forceFullSyncRef = (0, _react.useRef)(false);
|
|
23
68
|
const updateTimerRef = (0, _react.useRef)(null);
|
|
24
69
|
const rafRef = (0, _react.useRef)(null);
|
|
25
|
-
const
|
|
70
|
+
const allowIncremental = incrementalParsing && !hasBeforeParsePlugins;
|
|
71
|
+
(0, _react.useEffect)(() => {
|
|
72
|
+
renderStateRef.current = renderState;
|
|
73
|
+
}, [renderState]);
|
|
26
74
|
(0, _react.useEffect)(() => {
|
|
27
|
-
// Ensure initial state is synced
|
|
28
75
|
const initialText = session.getAllText();
|
|
29
|
-
|
|
30
|
-
|
|
76
|
+
const initialState = {
|
|
77
|
+
text: initialText,
|
|
78
|
+
ast: hasBeforeParsePlugins ? createEmptyAst() : parseText(initialText)
|
|
79
|
+
};
|
|
80
|
+
pendingUpdateRef.current = false;
|
|
81
|
+
pendingFromRef.current = null;
|
|
82
|
+
pendingToRef.current = null;
|
|
83
|
+
forceFullSyncRef.current = false;
|
|
84
|
+
renderStateRef.current = initialState;
|
|
85
|
+
setRenderState(initialState);
|
|
86
|
+
}, [hasBeforeParsePlugins, parseText, session]);
|
|
87
|
+
(0, _react.useEffect)(() => {
|
|
31
88
|
const flushUpdate = () => {
|
|
32
89
|
updateTimerRef.current = null;
|
|
33
90
|
if (rafRef.current !== null) {
|
|
@@ -36,13 +93,39 @@ const MarkdownStream = ({
|
|
|
36
93
|
}
|
|
37
94
|
if (!pendingUpdateRef.current) return;
|
|
38
95
|
pendingUpdateRef.current = false;
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
96
|
+
const previousState = renderStateRef.current;
|
|
97
|
+
const pendingFrom = pendingFromRef.current;
|
|
98
|
+
const pendingTo = pendingToRef.current;
|
|
99
|
+
const forceFullSync = forceFullSyncRef.current;
|
|
100
|
+
pendingFromRef.current = null;
|
|
101
|
+
pendingToRef.current = null;
|
|
102
|
+
forceFullSyncRef.current = false;
|
|
103
|
+
const latest = resolveStreamText({
|
|
104
|
+
forceFullSync,
|
|
105
|
+
pendingFrom,
|
|
106
|
+
pendingTo,
|
|
107
|
+
previousText: previousState.text,
|
|
108
|
+
session
|
|
109
|
+
});
|
|
110
|
+
if (latest === previousState.text) return;
|
|
111
|
+
const nextAst = hasBeforeParsePlugins ? previousState.ast : (0, _incrementalAst.getNextStreamAst)({
|
|
112
|
+
allowIncremental,
|
|
113
|
+
nextText: latest,
|
|
114
|
+
options,
|
|
115
|
+
previousAst: previousState.ast,
|
|
116
|
+
previousText: previousState.text
|
|
117
|
+
});
|
|
118
|
+
const nextState = {
|
|
119
|
+
text: latest,
|
|
120
|
+
ast: nextAst
|
|
121
|
+
};
|
|
122
|
+
renderStateRef.current = nextState;
|
|
42
123
|
if (useTransitionUpdates) {
|
|
43
|
-
(0, _react.startTransition)(() =>
|
|
124
|
+
(0, _react.startTransition)(() => {
|
|
125
|
+
setRenderState(nextState);
|
|
126
|
+
});
|
|
44
127
|
} else {
|
|
45
|
-
|
|
128
|
+
setRenderState(nextState);
|
|
46
129
|
}
|
|
47
130
|
};
|
|
48
131
|
const scheduleFlush = () => {
|
|
@@ -56,7 +139,17 @@ const MarkdownStream = ({
|
|
|
56
139
|
updateTimerRef.current = setTimeout(flushUpdate, updateIntervalMs);
|
|
57
140
|
}
|
|
58
141
|
};
|
|
59
|
-
const unsubscribe = session.addListener(() => {
|
|
142
|
+
const unsubscribe = session.addListener((from, to) => {
|
|
143
|
+
const nextFrom = normalizeOffset(from);
|
|
144
|
+
const nextTo = normalizeOffset(to);
|
|
145
|
+
if (nextFrom === null || nextTo === null || nextTo < nextFrom) {
|
|
146
|
+
forceFullSyncRef.current = true;
|
|
147
|
+
} else {
|
|
148
|
+
const currentFrom = pendingFromRef.current;
|
|
149
|
+
const currentTo = pendingToRef.current;
|
|
150
|
+
pendingFromRef.current = currentFrom === null ? nextFrom : Math.min(currentFrom, nextFrom);
|
|
151
|
+
pendingToRef.current = currentTo === null ? nextTo : Math.max(currentTo, nextTo);
|
|
152
|
+
}
|
|
60
153
|
pendingUpdateRef.current = true;
|
|
61
154
|
scheduleFlush();
|
|
62
155
|
});
|
|
@@ -71,10 +164,13 @@ const MarkdownStream = ({
|
|
|
71
164
|
rafRef.current = null;
|
|
72
165
|
}
|
|
73
166
|
};
|
|
74
|
-
}, [session, updateIntervalMs, updateStrategy, useTransitionUpdates]);
|
|
167
|
+
}, [allowIncremental, hasBeforeParsePlugins, options, session, updateIntervalMs, updateStrategy, useTransitionUpdates]);
|
|
75
168
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_markdown.Markdown, {
|
|
76
169
|
...props,
|
|
77
|
-
|
|
170
|
+
options: options,
|
|
171
|
+
plugins: plugins,
|
|
172
|
+
sourceAst: hasBeforeParsePlugins ? undefined : renderState.ast,
|
|
173
|
+
children: renderState.text
|
|
78
174
|
});
|
|
79
175
|
};
|
|
80
176
|
exports.MarkdownStream = MarkdownStream;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_markdown","_jsxRuntime","
|
|
1
|
+
{"version":3,"names":["_react","require","_markdown","_incrementalAst","_jsxRuntime","normalizeOffset","value","Number","isFinite","Math","floor","resolveStreamText","forceFullSync","pendingFrom","pendingTo","previousText","session","getAllText","length","appendedChunk","getTextRange","MarkdownStream","updateIntervalMs","updateStrategy","useTransitionUpdates","incrementalParsing","options","plugins","props","parseText","useCallback","text","parseMarkdownAst","createEmptyAst","type","children","initialText","hasBeforeParsePlugins","some","plugin","beforeParse","renderState","setRenderState","useState","ast","renderStateRef","useRef","pendingUpdateRef","pendingFromRef","pendingToRef","forceFullSyncRef","updateTimerRef","rafRef","allowIncremental","useEffect","current","initialState","flushUpdate","cancelAnimationFrame","previousState","latest","nextAst","getNextStreamAst","nextText","previousAst","nextState","startTransition","scheduleFlush","requestAnimationFrame","setTimeout","unsubscribe","addListener","from","to","nextFrom","nextTo","currentFrom","currentTo","min","max","clearTimeout","jsx","Markdown","sourceAst","undefined","exports"],"sourceRoot":"../../src","sources":["markdown-stream.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/markdown.js
CHANGED
|
@@ -4,63 +4,215 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.Markdown = void 0;
|
|
7
|
-
var _theme = require("./theme.js");
|
|
8
7
|
var _react = require("react");
|
|
9
8
|
var _reactNative = require("react-native");
|
|
10
9
|
var _headless = require("./headless.js");
|
|
11
10
|
var _MarkdownContext = require("./MarkdownContext.js");
|
|
12
|
-
var _heading = require("./renderers/heading.js");
|
|
13
|
-
var _paragraph = require("./renderers/paragraph.js");
|
|
14
|
-
var _link = require("./renderers/link.js");
|
|
15
11
|
var _blockquote = require("./renderers/blockquote.js");
|
|
16
|
-
var _horizontalRule = require("./renderers/horizontal-rule.js");
|
|
17
12
|
var _code = require("./renderers/code.js");
|
|
18
|
-
var
|
|
19
|
-
var
|
|
13
|
+
var _heading = require("./renderers/heading.js");
|
|
14
|
+
var _horizontalRule = require("./renderers/horizontal-rule.js");
|
|
20
15
|
var _image = require("./renderers/image.js");
|
|
16
|
+
var _link = require("./renderers/link.js");
|
|
17
|
+
var _list = require("./renderers/list.js");
|
|
21
18
|
var _math = require("./renderers/math.js");
|
|
19
|
+
var _paragraph = require("./renderers/paragraph.js");
|
|
20
|
+
var _table = require("./renderers/table.js");
|
|
21
|
+
var _theme = require("./theme.js");
|
|
22
22
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
|
+
const baseStylesCache = new WeakMap();
|
|
24
|
+
const parseAstCache = new Map();
|
|
25
|
+
const MAX_PARSE_CACHE_ENTRIES = 32;
|
|
26
|
+
const MAX_CACHEABLE_TEXT_LENGTH = 24_000;
|
|
27
|
+
const isMarkdownNode = value => {
|
|
28
|
+
if (typeof value !== "object" || value === null) return false;
|
|
29
|
+
return typeof Reflect.get(value, "type") === "string";
|
|
30
|
+
};
|
|
31
|
+
const warnInDev = (message, error) => {
|
|
32
|
+
if (typeof __DEV__ === "undefined" || !__DEV__) return;
|
|
33
|
+
const runtimeConsole = Reflect.get(globalThis, "console");
|
|
34
|
+
if (typeof runtimeConsole === "object" && runtimeConsole !== null && "warn" in runtimeConsole && typeof runtimeConsole.warn === "function") {
|
|
35
|
+
runtimeConsole.warn(message, error);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
const cloneMarkdownNode = node => {
|
|
39
|
+
return {
|
|
40
|
+
...node,
|
|
41
|
+
children: node.children?.map(cloneMarkdownNode)
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
const getParserOptionsKey = options => {
|
|
45
|
+
if (!options) return "gfm:default|math:default";
|
|
46
|
+
const gfm = options.gfm === undefined ? "default" : options.gfm ? "1" : "0";
|
|
47
|
+
const math = options.math === undefined ? "default" : options.math ? "1" : "0";
|
|
48
|
+
return `gfm:${gfm}|math:${math}`;
|
|
49
|
+
};
|
|
50
|
+
const normalizeParserOptions = options => {
|
|
51
|
+
if (!options) return undefined;
|
|
52
|
+
const gfm = options.gfm;
|
|
53
|
+
const math = options.math;
|
|
54
|
+
if (gfm === undefined && math === undefined) {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
gfm,
|
|
59
|
+
math
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
const parseWithNativeParser = (text, options) => {
|
|
63
|
+
if (options) {
|
|
64
|
+
return (0, _headless.parseMarkdownWithOptions)(text, options);
|
|
65
|
+
}
|
|
66
|
+
return (0, _headless.parseMarkdown)(text);
|
|
67
|
+
};
|
|
68
|
+
const getCachedParsedAst = (text, options) => {
|
|
69
|
+
if (text.length > MAX_CACHEABLE_TEXT_LENGTH) {
|
|
70
|
+
return parseWithNativeParser(text, options);
|
|
71
|
+
}
|
|
72
|
+
const cacheKey = `${getParserOptionsKey(options)}|${text}`;
|
|
73
|
+
const cachedNode = parseAstCache.get(cacheKey);
|
|
74
|
+
if (cachedNode) {
|
|
75
|
+
parseAstCache.delete(cacheKey);
|
|
76
|
+
parseAstCache.set(cacheKey, cachedNode);
|
|
77
|
+
return cloneMarkdownNode(cachedNode);
|
|
78
|
+
}
|
|
79
|
+
const parsedNode = parseWithNativeParser(text, options);
|
|
80
|
+
parseAstCache.set(cacheKey, parsedNode);
|
|
81
|
+
if (parseAstCache.size > MAX_PARSE_CACHE_ENTRIES) {
|
|
82
|
+
const oldestCacheKey = parseAstCache.keys().next().value;
|
|
83
|
+
if (typeof oldestCacheKey === "string") {
|
|
84
|
+
parseAstCache.delete(oldestCacheKey);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return cloneMarkdownNode(parsedNode);
|
|
88
|
+
};
|
|
89
|
+
const applyBeforeParsePlugins = (markdown, plugins) => {
|
|
90
|
+
if (!plugins || plugins.length === 0) {
|
|
91
|
+
return markdown;
|
|
92
|
+
}
|
|
93
|
+
let nextMarkdown = markdown;
|
|
94
|
+
for (const plugin of plugins) {
|
|
95
|
+
if (!plugin.beforeParse) continue;
|
|
96
|
+
try {
|
|
97
|
+
const transformed = plugin.beforeParse(nextMarkdown);
|
|
98
|
+
if (typeof transformed === "string") {
|
|
99
|
+
nextMarkdown = transformed;
|
|
100
|
+
}
|
|
101
|
+
} catch (error) {
|
|
102
|
+
const pluginLabel = plugin.name ? ` (${plugin.name})` : "";
|
|
103
|
+
warnInDev(`[react-native-nitro-markdown] plugin beforeParse${pluginLabel} threw; using previous markdown.`, error);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return nextMarkdown;
|
|
107
|
+
};
|
|
108
|
+
const applyAfterParsePlugins = (ast, plugins) => {
|
|
109
|
+
if (!plugins || plugins.length === 0) {
|
|
110
|
+
return ast;
|
|
111
|
+
}
|
|
112
|
+
let nextAst = ast;
|
|
113
|
+
for (const plugin of plugins) {
|
|
114
|
+
if (!plugin.afterParse) continue;
|
|
115
|
+
try {
|
|
116
|
+
const transformed = plugin.afterParse(nextAst);
|
|
117
|
+
if (isMarkdownNode(transformed)) {
|
|
118
|
+
nextAst = transformed;
|
|
119
|
+
}
|
|
120
|
+
} catch (error) {
|
|
121
|
+
const pluginLabel = plugin.name ? ` (${plugin.name})` : "";
|
|
122
|
+
warnInDev(`[react-native-nitro-markdown] plugin afterParse${pluginLabel} threw; using previous AST.`, error);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return nextAst;
|
|
126
|
+
};
|
|
23
127
|
const Markdown = ({
|
|
24
128
|
children,
|
|
25
129
|
options,
|
|
130
|
+
plugins,
|
|
131
|
+
sourceAst,
|
|
132
|
+
astTransform,
|
|
26
133
|
renderers = {},
|
|
27
134
|
theme: userTheme,
|
|
28
135
|
styles: nodeStyles,
|
|
29
136
|
stylingStrategy = "opinionated",
|
|
30
137
|
style,
|
|
31
138
|
onParsingInProgress,
|
|
32
|
-
onParseComplete
|
|
139
|
+
onParseComplete,
|
|
140
|
+
onLinkPress,
|
|
141
|
+
virtualize = false,
|
|
142
|
+
virtualizationMinBlocks = 40,
|
|
143
|
+
virtualization
|
|
33
144
|
}) => {
|
|
34
|
-
const
|
|
145
|
+
const parserOptionGfm = options?.gfm;
|
|
146
|
+
const parserOptionMath = options?.math;
|
|
147
|
+
const parseResult = (0, _react.useMemo)(() => {
|
|
35
148
|
try {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
})
|
|
149
|
+
const markdownToParse = applyBeforeParsePlugins(children, plugins);
|
|
150
|
+
const parserOptions = normalizeParserOptions({
|
|
151
|
+
gfm: parserOptionGfm,
|
|
152
|
+
math: parserOptionMath
|
|
153
|
+
});
|
|
154
|
+
let parsedAst = sourceAst ? cloneMarkdownNode(sourceAst) : getCachedParsedAst(markdownToParse, parserOptions);
|
|
155
|
+
parsedAst = applyAfterParsePlugins(parsedAst, plugins);
|
|
156
|
+
let ast = parsedAst;
|
|
157
|
+
if (astTransform) {
|
|
158
|
+
try {
|
|
159
|
+
const nextAst = astTransform(parsedAst);
|
|
160
|
+
if (isMarkdownNode(nextAst)) {
|
|
161
|
+
ast = nextAst;
|
|
162
|
+
}
|
|
163
|
+
} catch (error) {
|
|
164
|
+
warnInDev("[react-native-nitro-markdown] astTransform threw; falling back to parsed AST.", error);
|
|
165
|
+
ast = parsedAst;
|
|
166
|
+
}
|
|
51
167
|
}
|
|
52
|
-
return
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
168
|
+
return {
|
|
169
|
+
ast
|
|
170
|
+
};
|
|
171
|
+
} catch {
|
|
172
|
+
return {
|
|
173
|
+
ast: null
|
|
174
|
+
};
|
|
56
175
|
}
|
|
57
|
-
}, [children,
|
|
176
|
+
}, [children, parserOptionGfm, parserOptionMath, plugins, sourceAst, astTransform]);
|
|
177
|
+
(0, _react.useEffect)(() => {
|
|
178
|
+
onParsingInProgress?.();
|
|
179
|
+
}, [children, parserOptionGfm, parserOptionMath, plugins, onParsingInProgress]);
|
|
180
|
+
(0, _react.useEffect)(() => {
|
|
181
|
+
if (!parseResult.ast || !onParseComplete) return;
|
|
182
|
+
onParseComplete({
|
|
183
|
+
raw: children,
|
|
184
|
+
ast: parseResult.ast,
|
|
185
|
+
text: (0, _headless.getFlattenedText)(parseResult.ast)
|
|
186
|
+
});
|
|
187
|
+
}, [children, onParseComplete, parseResult.ast]);
|
|
58
188
|
const theme = (0, _react.useMemo)(() => {
|
|
59
189
|
const base = stylingStrategy === "minimal" ? _theme.minimalMarkdownTheme : _theme.defaultMarkdownTheme;
|
|
60
190
|
return (0, _theme.mergeThemes)(base, userTheme);
|
|
61
191
|
}, [userTheme, stylingStrategy]);
|
|
62
|
-
const baseStyles = (
|
|
63
|
-
|
|
192
|
+
const baseStyles = getBaseStyles(theme);
|
|
193
|
+
const contextValue = (0, _react.useMemo)(() => ({
|
|
194
|
+
renderers,
|
|
195
|
+
theme,
|
|
196
|
+
styles: nodeStyles,
|
|
197
|
+
stylingStrategy,
|
|
198
|
+
onLinkPress
|
|
199
|
+
}), [renderers, theme, nodeStyles, stylingStrategy, onLinkPress]);
|
|
200
|
+
const topLevelBlocks = parseResult.ast?.type === "document" ? parseResult.ast.children ?? [] : parseResult.ast ? [parseResult.ast] : [];
|
|
201
|
+
const shouldVirtualizeBySetting = virtualize === true || virtualize === "auto" && topLevelBlocks.length >= virtualizationMinBlocks;
|
|
202
|
+
const shouldVirtualize = parseResult.ast !== null && shouldVirtualizeBySetting;
|
|
203
|
+
const keyExtractor = (0, _react.useCallback)((node, index) => {
|
|
204
|
+
const beg = typeof node.beg === "number" ? node.beg : index;
|
|
205
|
+
const end = typeof node.end === "number" ? node.end : index;
|
|
206
|
+
return `${node.type}:${beg}:${end}:${index}`;
|
|
207
|
+
}, []);
|
|
208
|
+
const renderVirtualizedItem = (0, _react.useCallback)(({
|
|
209
|
+
item
|
|
210
|
+
}) => /*#__PURE__*/(0, _jsxRuntime.jsx)(NodeRenderer, {
|
|
211
|
+
node: item,
|
|
212
|
+
depth: 0,
|
|
213
|
+
inListItem: false
|
|
214
|
+
}), []);
|
|
215
|
+
if (!parseResult.ast) {
|
|
64
216
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
65
217
|
style: [baseStyles.container, style],
|
|
66
218
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
@@ -70,16 +222,22 @@ const Markdown = ({
|
|
|
70
222
|
});
|
|
71
223
|
}
|
|
72
224
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_MarkdownContext.MarkdownContext.Provider, {
|
|
73
|
-
value:
|
|
74
|
-
renderers,
|
|
75
|
-
theme,
|
|
76
|
-
styles: nodeStyles,
|
|
77
|
-
stylingStrategy
|
|
78
|
-
},
|
|
225
|
+
value: contextValue,
|
|
79
226
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
80
227
|
style: [baseStyles.container, style],
|
|
81
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
82
|
-
|
|
228
|
+
children: shouldVirtualize ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.FlatList, {
|
|
229
|
+
data: topLevelBlocks,
|
|
230
|
+
renderItem: renderVirtualizedItem,
|
|
231
|
+
keyExtractor: keyExtractor,
|
|
232
|
+
style: baseStyles.virtualizedList,
|
|
233
|
+
initialNumToRender: virtualization?.initialNumToRender ?? 12,
|
|
234
|
+
maxToRenderPerBatch: virtualization?.maxToRenderPerBatch ?? 12,
|
|
235
|
+
windowSize: virtualization?.windowSize ?? 10,
|
|
236
|
+
updateCellsBatchingPeriod: virtualization?.updateCellsBatchingPeriod ?? 16,
|
|
237
|
+
removeClippedSubviews: virtualization?.removeClippedSubviews ?? true,
|
|
238
|
+
showsVerticalScrollIndicator: false
|
|
239
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(NodeRenderer, {
|
|
240
|
+
node: parseResult.ast,
|
|
83
241
|
depth: 0,
|
|
84
242
|
inListItem: false
|
|
85
243
|
})
|
|
@@ -90,7 +248,7 @@ exports.Markdown = Markdown;
|
|
|
90
248
|
const isInline = type => {
|
|
91
249
|
return type === "text" || type === "bold" || type === "italic" || type === "strikethrough" || type === "link" || type === "code_inline" || type === "soft_break" || type === "line_break" || type === "html_inline" || type === "math_inline";
|
|
92
250
|
};
|
|
93
|
-
const
|
|
251
|
+
const NodeRendererComponent = ({
|
|
94
252
|
node,
|
|
95
253
|
depth,
|
|
96
254
|
inListItem,
|
|
@@ -101,7 +259,7 @@ const NodeRenderer = ({
|
|
|
101
259
|
theme,
|
|
102
260
|
styles: nodeStyles
|
|
103
261
|
} = (0, _MarkdownContext.useMarkdownContext)();
|
|
104
|
-
const baseStyles = (
|
|
262
|
+
const baseStyles = getBaseStyles(theme);
|
|
105
263
|
const renderChildren = (children, childInListItem = false, childParentIsText = false) => {
|
|
106
264
|
if (!children || children.length === 0) return null;
|
|
107
265
|
const elements = [];
|
|
@@ -196,9 +354,9 @@ const NodeRenderer = ({
|
|
|
196
354
|
})
|
|
197
355
|
};
|
|
198
356
|
const result = customRenderer(enhancedProps);
|
|
199
|
-
if (result !== undefined)
|
|
200
|
-
|
|
201
|
-
}
|
|
357
|
+
if (result !== undefined) {
|
|
358
|
+
return result;
|
|
359
|
+
}
|
|
202
360
|
}
|
|
203
361
|
const nodeStyleOverride = nodeStyles?.[node.type];
|
|
204
362
|
switch (node.type) {
|
|
@@ -354,10 +512,23 @@ const NodeRenderer = ({
|
|
|
354
512
|
return null;
|
|
355
513
|
}
|
|
356
514
|
};
|
|
515
|
+
const NodeRenderer = /*#__PURE__*/(0, _react.memo)(NodeRendererComponent, (previousProps, nextProps) => {
|
|
516
|
+
return previousProps.node === nextProps.node && previousProps.depth === nextProps.depth && previousProps.inListItem === nextProps.inListItem && previousProps.parentIsText === nextProps.parentIsText;
|
|
517
|
+
});
|
|
518
|
+
const getBaseStyles = theme => {
|
|
519
|
+
const cached = baseStylesCache.get(theme);
|
|
520
|
+
if (cached) return cached;
|
|
521
|
+
const created = createBaseStyles(theme);
|
|
522
|
+
baseStylesCache.set(theme, created);
|
|
523
|
+
return created;
|
|
524
|
+
};
|
|
357
525
|
const createBaseStyles = theme => _reactNative.StyleSheet.create({
|
|
358
526
|
container: {
|
|
359
527
|
flex: 1
|
|
360
528
|
},
|
|
529
|
+
virtualizedList: {
|
|
530
|
+
flex: 1
|
|
531
|
+
},
|
|
361
532
|
document: {
|
|
362
533
|
flex: 1
|
|
363
534
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_theme","require","_react","_reactNative","_headless","_MarkdownContext","_heading","_paragraph","_link","_blockquote","_horizontalRule","_code","_list","_table","_image","_math","_jsxRuntime","Markdown","children","options","renderers","theme","userTheme","styles","nodeStyles","stylingStrategy","style","onParsingInProgress","onParseComplete","ast","useMemo","result","parseMarkdownWithOptions","parseMarkdown","raw","text","getFlattenedText","error","console","base","minimalMarkdownTheme","defaultMarkdownTheme","mergeThemes","baseStyles","createBaseStyles","jsx","View","container","Text","errorText","MarkdownContext","Provider","value","NodeRenderer","node","depth","inListItem","exports","isInline","type","parentIsText","useMarkdownContext","renderChildren","childInListItem","childParentIsText","length","elements","currentInlineGroup","flushInlineGroup","hasMath","some","child","push","flexDirection","alignItems","flexWrap","flexShrink","map","n","idx","Wrapper","Fragment","wrapperProps","forEach","index","customRenderer","childrenRendered","baseProps","Renderer","enhancedProps","level","href","title","url","alt","content","getTextContent","language","ordered","start","checked","undefined","nodeStyleOverride","document","Heading","Paragraph","bold","italic","strikethrough","Link","Image","InlineCode","CodeBlock","Blockquote","HorizontalRule","mathContent","replace","trim","MathInline","MathBlock","List","ListItem","TaskListItem","TableRenderer","StyleSheet","create","flex","color","fontSize","fontFamily","fontFamilies","mono","Platform","OS","includeFontPadding","colors","fontSizes","m","lineHeight","regular","fontWeight","fontStyle","textDecorationLine"],"sourceRoot":"../../src","sources":["markdown.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_headless","_MarkdownContext","_blockquote","_code","_heading","_horizontalRule","_image","_link","_list","_math","_paragraph","_table","_theme","_jsxRuntime","baseStylesCache","WeakMap","parseAstCache","Map","MAX_PARSE_CACHE_ENTRIES","MAX_CACHEABLE_TEXT_LENGTH","isMarkdownNode","value","Reflect","get","warnInDev","message","error","__DEV__","runtimeConsole","globalThis","warn","cloneMarkdownNode","node","children","map","getParserOptionsKey","options","gfm","undefined","math","normalizeParserOptions","parseWithNativeParser","text","parseMarkdownWithOptions","parseMarkdown","getCachedParsedAst","length","cacheKey","cachedNode","delete","set","parsedNode","size","oldestCacheKey","keys","next","applyBeforeParsePlugins","markdown","plugins","nextMarkdown","plugin","beforeParse","transformed","pluginLabel","name","applyAfterParsePlugins","ast","nextAst","afterParse","Markdown","sourceAst","astTransform","renderers","theme","userTheme","styles","nodeStyles","stylingStrategy","style","onParsingInProgress","onParseComplete","onLinkPress","virtualize","virtualizationMinBlocks","virtualization","parserOptionGfm","parserOptionMath","parseResult","useMemo","markdownToParse","parserOptions","parsedAst","useEffect","raw","getFlattenedText","base","minimalMarkdownTheme","defaultMarkdownTheme","mergeThemes","baseStyles","getBaseStyles","contextValue","topLevelBlocks","type","shouldVirtualizeBySetting","shouldVirtualize","keyExtractor","useCallback","index","beg","end","renderVirtualizedItem","item","jsx","NodeRenderer","depth","inListItem","View","container","Text","errorText","MarkdownContext","Provider","FlatList","data","renderItem","virtualizedList","initialNumToRender","maxToRenderPerBatch","windowSize","updateCellsBatchingPeriod","removeClippedSubviews","showsVerticalScrollIndicator","exports","isInline","NodeRendererComponent","parentIsText","useMarkdownContext","renderChildren","childInListItem","childParentIsText","elements","currentInlineGroup","flushInlineGroup","hasMath","some","child","push","flexDirection","alignItems","flexWrap","flexShrink","n","idx","Wrapper","Fragment","wrapperProps","forEach","customRenderer","childrenRendered","baseProps","Renderer","enhancedProps","level","href","title","url","alt","content","getTextContent","language","ordered","start","checked","result","nodeStyleOverride","document","Heading","Paragraph","bold","italic","strikethrough","Link","Image","InlineCode","CodeBlock","Blockquote","HorizontalRule","mathContent","replace","trim","MathInline","MathBlock","List","ListItem","TaskListItem","TableRenderer","memo","previousProps","nextProps","cached","created","createBaseStyles","StyleSheet","create","flex","color","fontSize","fontFamily","fontFamilies","mono","Platform","OS","includeFontPadding","colors","fontSizes","m","lineHeight","regular","fontWeight","fontStyle","textDecorationLine"],"sourceRoot":"../../src","sources":["markdown.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.InlineCode = exports.CodeBlock = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
|
-
var _MarkdownContext = require("../MarkdownContext.js");
|
|
10
9
|
var _headless = require("../headless.js");
|
|
10
|
+
var _MarkdownContext = require("../MarkdownContext.js");
|
|
11
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
12
|
const CodeBlock = ({
|
|
13
13
|
language,
|
|
@@ -56,12 +56,13 @@ const CodeBlock = ({
|
|
|
56
56
|
const showLanguage = theme.showCodeLanguage && language;
|
|
57
57
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
58
58
|
style: [styles.codeBlock, style],
|
|
59
|
-
children: [showLanguage
|
|
59
|
+
children: [showLanguage ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
60
60
|
style: styles.codeLanguage,
|
|
61
61
|
children: language
|
|
62
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
|
|
62
|
+
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
|
|
63
63
|
horizontal: true,
|
|
64
64
|
showsHorizontalScrollIndicator: false,
|
|
65
|
+
bounces: false,
|
|
65
66
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
66
67
|
style: styles.codeBlockText,
|
|
67
68
|
children: displayContent
|