@tinglinzh/react-native-markdownview 0.2.0 → 0.3.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.
@@ -133,11 +133,12 @@ import MarkdownView
133
133
  let size = markdownTextView.intrinsicContentSize
134
134
  guard size.height > 0, size != lastContentSize else { return }
135
135
  lastContentSize = size
136
- let body: [AnyHashable: Any] = [
137
- "contentSize": ["width": Double(size.width), "height": Double(size.height)]
138
- ]
136
+ let w = Double(size.width), h = Double(size.height)
137
+ // Old arch: JS reconstructs { contentSize: { width, height } } from flat payload.
138
+ // Codegen cannot represent nested objects in event payloads, so we send flat fields.
139
+ let body: [AnyHashable: Any] = ["width": w, "height": h]
139
140
  onContentSizeChange?(body)
140
- onContentSizeChangeFabric?(Double(size.width), Double(size.height))
141
+ onContentSizeChangeFabric?(w, h)
141
142
  }
142
143
 
143
144
  // MARK: - Fabric entry-points (called from RNMarkdownViewComponentView.mm)
@@ -107,11 +107,11 @@ using namespace facebook::react;
107
107
 
108
108
  _markdownView.onContentSizeChangeFabric = ^(double width, double height) {
109
109
  if (!emitter) return;
110
+ // Flat fields — codegen does not support nested objects in event payloads.
111
+ // JS reconstructs { contentSize: { width, height } } from these.
110
112
  RNMarkdownViewEventEmitter::OnContentSizeChange event;
111
- RNMarkdownViewEventEmitter::OnContentSizeChangeContentSize size;
112
- size.width = width;
113
- size.height = height;
114
- event.contentSize = size;
113
+ event.width = width;
114
+ event.height = height;
115
115
  emitter->onContentSizeChange(event);
116
116
  };
117
117
  }
@@ -101,12 +101,27 @@ function MarkdownViewInner({
101
101
 
102
102
  // Re-serialize only when theme reference changes.
103
103
  themeJSONRef.current = serializeTheme(theme);
104
- const handleContentSizeChange = (0, _react.useCallback)(e => {
104
+ const handleContentSizeChange = (0, _react.useCallback)(
105
+ // Native sends flat { width, height } (codegen cannot handle nested objects in events).
106
+ // We reconstruct the { contentSize: { width, height } } shape for the user-facing API.
107
+ e => {
105
108
  const {
109
+ width,
106
110
  height
107
- } = e.nativeEvent.contentSize;
111
+ } = e.nativeEvent;
108
112
  if (height > 0) setAutoHeight(height);
109
- onContentSizeChange?.(e);
113
+ if (onContentSizeChange) {
114
+ const patched = {
115
+ ...e,
116
+ nativeEvent: {
117
+ contentSize: {
118
+ width,
119
+ height
120
+ }
121
+ }
122
+ };
123
+ onContentSizeChange(patched);
124
+ }
110
125
  }, [onContentSizeChange]);
111
126
  const handleLinkPress = (0, _react.useCallback)(e => {
112
127
  onLinkPress?.(e);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","COMPONENT_NAME","NativeMarkdownView","Platform","OS","requireNativeComponent","serializeTheme","theme","undefined","JSON","stringify","MarkdownView","markdown","style","onLinkPress","onImagePress","onLineSelection","onContentSizeChange","__DEV__","console","warn","jsx","View","MarkdownViewInner","NativeComponent","autoHeight","setAutoHeight","useState","themeJSONRef","useRef","current","handleContentSizeChange","useCallback","height","nativeEvent","contentSize","handleLinkPress","handleImagePress","handleLineSelection","startLine","endLine","contents","raw","language","patched","split","themeJSON","styles","h"],"sourceRoot":"../../src","sources":["MarkdownView.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","COMPONENT_NAME","NativeMarkdownView","Platform","OS","requireNativeComponent","serializeTheme","theme","undefined","JSON","stringify","MarkdownView","markdown","style","onLinkPress","onImagePress","onLineSelection","onContentSizeChange","__DEV__","console","warn","jsx","View","MarkdownViewInner","NativeComponent","autoHeight","setAutoHeight","useState","themeJSONRef","useRef","current","handleContentSizeChange","useCallback","width","height","nativeEvent","patched","contentSize","handleLinkPress","handleImagePress","handleLineSelection","startLine","endLine","contents","raw","language","split","themeJSON","styles","h"],"sourceRoot":"../../src","sources":["MarkdownView.tsx"],"mappings":"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","ignoreList":[]}
@@ -17,6 +17,8 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
17
17
  * react-native/Libraries/Types/CodegenTypes.
18
18
  */
19
19
  // ─── Codegen event payload types ─────────────────────────────────────────────
20
+ // Codegen does not support nested objects in event payloads.
21
+ // We flatten width/height and reconstruct { contentSize: { width, height } } on the JS side.
20
22
  // ─── Native component props ───────────────────────────────────────────────────
21
23
  var _default = exports.default = (0, _codegenNativeComponent.default)('RNMarkdownView');
22
24
  //# sourceMappingURL=NativeMarkdownView.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","e","__esModule","default","_default","exports","codegenNativeComponent"],"sourceRoot":"../../src","sources":["NativeMarkdownView.ts"],"mappings":";;;;;;AAgBA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAhB7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAUA;AA4BA;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAoBe,IAAAG,+BAAsB,EACnC,gBACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","e","__esModule","default","_default","exports","codegenNativeComponent"],"sourceRoot":"../../src","sources":["NativeMarkdownView.ts"],"mappings":";;;;;;AAgBA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAhB7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAUA;AAmBA;AACA;AAMA;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAoBe,IAAAG,+BAAsB,EACnC,gBACF,CAAC","ignoreList":[]}
@@ -96,12 +96,27 @@ function MarkdownViewInner({
96
96
 
97
97
  // Re-serialize only when theme reference changes.
98
98
  themeJSONRef.current = serializeTheme(theme);
99
- const handleContentSizeChange = useCallback(e => {
99
+ const handleContentSizeChange = useCallback(
100
+ // Native sends flat { width, height } (codegen cannot handle nested objects in events).
101
+ // We reconstruct the { contentSize: { width, height } } shape for the user-facing API.
102
+ e => {
100
103
  const {
104
+ width,
101
105
  height
102
- } = e.nativeEvent.contentSize;
106
+ } = e.nativeEvent;
103
107
  if (height > 0) setAutoHeight(height);
104
- onContentSizeChange?.(e);
108
+ if (onContentSizeChange) {
109
+ const patched = {
110
+ ...e,
111
+ nativeEvent: {
112
+ contentSize: {
113
+ width,
114
+ height
115
+ }
116
+ }
117
+ };
118
+ onContentSizeChange(patched);
119
+ }
105
120
  }, [onContentSizeChange]);
106
121
  const handleLinkPress = useCallback(e => {
107
122
  onLinkPress?.(e);
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useRef","useState","Platform","requireNativeComponent","View","jsx","_jsx","COMPONENT_NAME","NativeMarkdownView","OS","serializeTheme","theme","undefined","JSON","stringify","MarkdownView","markdown","style","onLinkPress","onImagePress","onLineSelection","onContentSizeChange","__DEV__","console","warn","MarkdownViewInner","NativeComponent","autoHeight","setAutoHeight","themeJSONRef","current","handleContentSizeChange","e","height","nativeEvent","contentSize","handleLinkPress","handleImagePress","handleLineSelection","startLine","endLine","contents","raw","language","patched","split","themeJSON","styles","h"],"sourceRoot":"../../src","sources":["MarkdownView.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useRef","useState","Platform","requireNativeComponent","View","jsx","_jsx","COMPONENT_NAME","NativeMarkdownView","OS","serializeTheme","theme","undefined","JSON","stringify","MarkdownView","markdown","style","onLinkPress","onImagePress","onLineSelection","onContentSizeChange","__DEV__","console","warn","MarkdownViewInner","NativeComponent","autoHeight","setAutoHeight","themeJSONRef","current","handleContentSizeChange","e","width","height","nativeEvent","patched","contentSize","handleLinkPress","handleImagePress","handleLineSelection","startLine","endLine","contents","raw","language","split","themeJSON","styles","h"],"sourceRoot":"../../src","sources":["MarkdownView.tsx"],"mappings":"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","ignoreList":[]}
@@ -15,6 +15,9 @@ import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNati
15
15
 
16
16
  // ─── Codegen event payload types ─────────────────────────────────────────────
17
17
 
18
+ // Codegen does not support nested objects in event payloads.
19
+ // We flatten width/height and reconstruct { contentSize: { width, height } } on the JS side.
20
+
18
21
  // ─── Native component props ───────────────────────────────────────────────────
19
22
 
20
23
  export default codegenNativeComponent('RNMarkdownView');
@@ -1 +1 @@
1
- {"version":3,"names":["codegenNativeComponent"],"sourceRoot":"../../src","sources":["NativeMarkdownView.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA,OAAOA,sBAAsB,MAAM,yDAAyD;;AAG5F;;AA4BA;;AAoBA,eAAeA,sBAAsB,CACnC,gBACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["codegenNativeComponent"],"sourceRoot":"../../src","sources":["NativeMarkdownView.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA,OAAOA,sBAAsB,MAAM,yDAAyD;;AAG5F;;AAmBA;AACA;;AAMA;;AAoBA,eAAeA,sBAAsB,CACnC,gBACF,CAAC","ignoreList":[]}
@@ -25,13 +25,10 @@ export type OnLineSelectionEvent = Readonly<{
25
25
  contents: string;
26
26
  language: string;
27
27
  }>;
28
- export type OnContentSizeChangeContentSize = Readonly<{
28
+ export type OnContentSizeChangeEvent = Readonly<{
29
29
  width: Double;
30
30
  height: Double;
31
31
  }>;
32
- export type OnContentSizeChangeEvent = Readonly<{
33
- contentSize: OnContentSizeChangeContentSize;
34
- }>;
35
32
  export interface NativeProps extends ViewProps {
36
33
  /** Raw markdown string to render. */
37
34
  markdown?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeMarkdownView.d.ts","sourceRoot":"","sources":["../../../src/NativeMarkdownView.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EACV,kBAAkB,EAClB,MAAM,EACN,KAAK,EACN,MAAM,2CAA2C,CAAC;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,SAAS,EAAE,KAAK,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;IACf,wFAAwF;IACxF,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CAAC;AAEH,MAAM,MAAM,8BAA8B,GAAG,QAAQ,CAAC;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAAC;IAC9C,WAAW,EAAE,8BAA8B,CAAC;CAC7C,CAAC,CAAC;AAIH,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACnD,2BAA2B;IAC3B,YAAY,CAAC,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;IACrD,8BAA8B;IAC9B,eAAe,CAAC,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;IAC3D,kCAAkC;IAClC,mBAAmB,CAAC,EAAE,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;CACpE;wBAII,aAAa,CAAC,WAAW,CAAC;AAF/B,wBAEgC"}
1
+ {"version":3,"file":"NativeMarkdownView.d.ts","sourceRoot":"","sources":["../../../src/NativeMarkdownView.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EACV,kBAAkB,EAClB,MAAM,EACN,KAAK,EACN,MAAM,2CAA2C,CAAC;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,SAAS,EAAE,KAAK,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;IACf,wFAAwF;IACxF,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CAAC;AAIH,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAIH,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACnD,2BAA2B;IAC3B,YAAY,CAAC,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;IACrD,8BAA8B;IAC9B,eAAe,CAAC,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;IAC3D,kCAAkC;IAClC,mBAAmB,CAAC,EAAE,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;CACpE;wBAII,aAAa,CAAC,WAAW,CAAC;AAF/B,wBAEgC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tinglinzh/react-native-markdownview",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "React Native wrapper for MarkdownView — native iOS/macOS markdown rendering with GFM, syntax highlighting, LaTeX math, and unified diff support",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -114,10 +114,18 @@ function MarkdownViewInner({
114
114
  themeJSONRef.current = serializeTheme(theme);
115
115
 
116
116
  const handleContentSizeChange = useCallback(
117
- (e: NativeSyntheticEvent<ContentSizeChangeEvent>) => {
118
- const { height } = e.nativeEvent.contentSize;
117
+ // Native sends flat { width, height } (codegen cannot handle nested objects in events).
118
+ // We reconstruct the { contentSize: { width, height } } shape for the user-facing API.
119
+ (e: NativeSyntheticEvent<{ width: number; height: number }>) => {
120
+ const { width, height } = e.nativeEvent;
119
121
  if (height > 0) setAutoHeight(height);
120
- onContentSizeChange?.(e);
122
+ if (onContentSizeChange) {
123
+ const patched = {
124
+ ...e,
125
+ nativeEvent: { contentSize: { width, height } } satisfies ContentSizeChangeEvent,
126
+ };
127
+ onContentSizeChange(patched as unknown as NativeSyntheticEvent<ContentSizeChangeEvent>);
128
+ }
121
129
  },
122
130
  [onContentSizeChange],
123
131
  );
@@ -36,15 +36,13 @@ export type OnLineSelectionEvent = Readonly<{
36
36
  language: string; // empty string when unknown
37
37
  }>;
38
38
 
39
- export type OnContentSizeChangeContentSize = Readonly<{
39
+ // Codegen does not support nested objects in event payloads.
40
+ // We flatten width/height and reconstruct { contentSize: { width, height } } on the JS side.
41
+ export type OnContentSizeChangeEvent = Readonly<{
40
42
  width: Double;
41
43
  height: Double;
42
44
  }>;
43
45
 
44
- export type OnContentSizeChangeEvent = Readonly<{
45
- contentSize: OnContentSizeChangeContentSize;
46
- }>;
47
-
48
46
  // ─── Native component props ───────────────────────────────────────────────────
49
47
 
50
48
  export interface NativeProps extends ViewProps {