@uiw/react-md-editor 4.1.7 → 4.2.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/dist/mdeditor.js +1 -1
- package/dist/mdeditor.min.js +1 -1
- package/esm/Editor.factory.js +10 -7
- package/lib/Editor.factory.js +10 -7
- package/package.json +1 -1
- package/src/Editor.factory.tsx +11 -14
package/esm/Editor.factory.js
CHANGED
|
@@ -234,12 +234,15 @@ export function createMDEditor(options) {
|
|
|
234
234
|
initScroll.current = true;
|
|
235
235
|
}
|
|
236
236
|
if (textareaDom && previewDom) {
|
|
237
|
-
var
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
237
|
+
var inputRange = Math.max(0, textareaDom.scrollHeight - textareaDom.offsetHeight);
|
|
238
|
+
var previewRange = Math.max(0, previewDom.scrollHeight - previewDom.offsetHeight);
|
|
239
|
+
if (inputRange > 0 && previewRange > 0) {
|
|
240
|
+
if (e.target === textareaDom && active.current === 'text') {
|
|
241
|
+
previewDom.scrollTop = textareaDom.scrollTop / inputRange * previewRange;
|
|
242
|
+
}
|
|
243
|
+
if (e.target === previewDom && active.current === 'preview') {
|
|
244
|
+
textareaDom.scrollTop = previewDom.scrollTop / previewRange * inputRange;
|
|
245
|
+
}
|
|
243
246
|
}
|
|
244
247
|
var scrollTop = 0;
|
|
245
248
|
if (active.current === 'text') {
|
|
@@ -259,9 +262,9 @@ export function createMDEditor(options) {
|
|
|
259
262
|
var mdPreview = useMemo(() => /*#__PURE__*/_jsx("div", {
|
|
260
263
|
ref: previewRef,
|
|
261
264
|
className: previewClassName,
|
|
265
|
+
onScroll: handlePreviewScroll,
|
|
262
266
|
children: /*#__PURE__*/_jsx(TimedPreview, _extends({}, previewOptions, {
|
|
263
267
|
renderMsRef: previewRenderMs,
|
|
264
|
-
onScroll: handlePreviewScroll,
|
|
265
268
|
source: previewMarkdown
|
|
266
269
|
}))
|
|
267
270
|
}), [previewClassName, previewOptions, previewMarkdown]);
|
package/lib/Editor.factory.js
CHANGED
|
@@ -279,12 +279,15 @@ function createMDEditor(options) {
|
|
|
279
279
|
initScroll.current = true;
|
|
280
280
|
}
|
|
281
281
|
if (textareaDom && previewDom) {
|
|
282
|
-
var
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
282
|
+
var inputRange = Math.max(0, textareaDom.scrollHeight - textareaDom.offsetHeight);
|
|
283
|
+
var previewRange = Math.max(0, previewDom.scrollHeight - previewDom.offsetHeight);
|
|
284
|
+
if (inputRange > 0 && previewRange > 0) {
|
|
285
|
+
if (e.target === textareaDom && active.current === 'text') {
|
|
286
|
+
previewDom.scrollTop = textareaDom.scrollTop / inputRange * previewRange;
|
|
287
|
+
}
|
|
288
|
+
if (e.target === previewDom && active.current === 'preview') {
|
|
289
|
+
textareaDom.scrollTop = previewDom.scrollTop / previewRange * inputRange;
|
|
290
|
+
}
|
|
288
291
|
}
|
|
289
292
|
var scrollTop = 0;
|
|
290
293
|
if (active.current === 'text') {
|
|
@@ -307,9 +310,9 @@ function createMDEditor(options) {
|
|
|
307
310
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
308
311
|
ref: previewRef,
|
|
309
312
|
className: previewClassName,
|
|
313
|
+
onScroll: handlePreviewScroll,
|
|
310
314
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(TimedPreview, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, previewOptions), {}, {
|
|
311
315
|
renderMsRef: previewRenderMs,
|
|
312
|
-
onScroll: handlePreviewScroll,
|
|
313
316
|
source: previewMarkdown
|
|
314
317
|
}))
|
|
315
318
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uiw/react-md-editor",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.2.0",
|
|
4
4
|
"description": "A markdown editor with preview, implemented with React.js and TypeScript.",
|
|
5
5
|
"homepage": "https://uiwjs.github.io/react-md-editor/",
|
|
6
6
|
"funding": "https://jaywcjlove.github.io/#/sponsor",
|
package/src/Editor.factory.tsx
CHANGED
|
@@ -232,13 +232,15 @@ export function createMDEditor<
|
|
|
232
232
|
initScroll.current = true;
|
|
233
233
|
}
|
|
234
234
|
if (textareaDom && previewDom) {
|
|
235
|
-
const
|
|
236
|
-
|
|
237
|
-
if (
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
235
|
+
const inputRange = Math.max(0, textareaDom.scrollHeight - textareaDom.offsetHeight);
|
|
236
|
+
const previewRange = Math.max(0, previewDom.scrollHeight - previewDom.offsetHeight);
|
|
237
|
+
if (inputRange > 0 && previewRange > 0) {
|
|
238
|
+
if (e.target === textareaDom && active.current === 'text') {
|
|
239
|
+
previewDom.scrollTop = (textareaDom.scrollTop / inputRange) * previewRange;
|
|
240
|
+
}
|
|
241
|
+
if (e.target === previewDom && active.current === 'preview') {
|
|
242
|
+
textareaDom.scrollTop = (previewDom.scrollTop / previewRange) * inputRange;
|
|
243
|
+
}
|
|
242
244
|
}
|
|
243
245
|
let scrollTop = 0;
|
|
244
246
|
if (active.current === 'text') {
|
|
@@ -256,13 +258,8 @@ export function createMDEditor<
|
|
|
256
258
|
const previewMarkdown = useDeferredValue(usePreviewSource(state.markdown || '', previewRenderMs));
|
|
257
259
|
let mdPreview = useMemo(
|
|
258
260
|
() => (
|
|
259
|
-
<div ref={previewRef} className={previewClassName}>
|
|
260
|
-
<TimedPreview
|
|
261
|
-
{...previewOptions}
|
|
262
|
-
renderMsRef={previewRenderMs}
|
|
263
|
-
onScroll={handlePreviewScroll}
|
|
264
|
-
source={previewMarkdown}
|
|
265
|
-
/>
|
|
261
|
+
<div ref={previewRef} className={previewClassName} onScroll={handlePreviewScroll}>
|
|
262
|
+
<TimedPreview {...previewOptions} renderMsRef={previewRenderMs} source={previewMarkdown} />
|
|
266
263
|
</div>
|
|
267
264
|
),
|
|
268
265
|
[previewClassName, previewOptions, previewMarkdown],
|