@tinglinzh/react-native-markdownview 0.2.0 → 0.4.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
  }
@@ -1,13 +1,33 @@
1
1
  /**
2
- * Old Architecture bridge.
2
+ * Old Architecture view manager — pure Objective-C implementation.
3
3
  *
4
- * React Native uses KVC to set these properties on the UIView returned by
5
- * RNMarkdownViewManager.view(). The property names must match exactly what
6
- * RNMarkdownView exposes via @objc.
4
+ * Framework targets don't support bridging headers, so we:
5
+ * 1. Keep this file as ObjC (no bridging header needed).
6
+ * 2. Import the auto-generated Swift header to access RNMarkdownView.
7
+ * 3. Delete the separate RNMarkdownViewManager.swift file.
8
+ *
9
+ * The Swift-generated header is emitted by the compiler as
10
+ * "react_native_markdownview-Swift.h" (pod name, hyphens → underscores).
7
11
  */
8
12
  #import <React/RCTViewManager.h>
13
+ #import "react_native_markdownview-Swift.h"
14
+
15
+ @interface RNMarkdownViewManager : RCTViewManager
16
+ @end
17
+
18
+ @implementation RNMarkdownViewManager
19
+
20
+ RCT_EXPORT_MODULE()
21
+
22
+ - (UIView *)view
23
+ {
24
+ return [[RNMarkdownView alloc] init];
25
+ }
9
26
 
10
- @interface RCT_EXTERN_MODULE(RNMarkdownViewManager, RCTViewManager)
27
+ + (BOOL)requiresMainQueueSetup
28
+ {
29
+ return YES;
30
+ }
11
31
 
12
32
  // ─── Content ────────────────────────────────────────────────────────────────
13
33
  /// Raw markdown string.
@@ -24,11 +44,11 @@ RCT_EXPORT_VIEW_PROPERTY(onLinkPress, RCTDirectEventBlock)
24
44
  RCT_EXPORT_VIEW_PROPERTY(onImagePress, RCTDirectEventBlock)
25
45
 
26
46
  /// Fires when lines are selected in a code block.
27
- /// Payload: { startLine: number, endLine: number, contents: string[], language?: string }
47
+ /// Payload: { startLine: number, endLine: number, contents: string, language: string }
28
48
  RCT_EXPORT_VIEW_PROPERTY(onLineSelection, RCTDirectEventBlock)
29
49
 
30
50
  /// Fires when the intrinsic content height changes.
31
- /// Payload: { contentSize: { width: number, height: number } }
51
+ /// Payload: { width: number, height: number }
32
52
  RCT_EXPORT_VIEW_PROPERTY(onContentSizeChange, RCTDirectEventBlock)
33
53
 
34
54
  @end
@@ -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":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAC5D,SAEEC,QAAQ,EACRC,sBAAsB,EAEtBC,IAAI,QACC,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAUtB;;AAEA,MAAMC,cAAc,GAAG,gBAAgB;;AAEvC;AACA;AACA;AACA;AACA;AACA,MAAMC,kBAAmD,GACvDN,QAAQ,CAACO,EAAE,KAAK,KAAK,GAAGN,sBAAsB,CAACI,cAAc,CAAC,GAAG,IAAI;;AAEvE;;AAEA,SAASG,cAAcA,CAACC,KAA+B,EAAsB;EAC3E,IAAI,CAACA,KAAK,EAAE,OAAOC,SAAS;EAC5B,IAAI;IACF,OAAOC,IAAI,CAACC,SAAS,CAACH,KAAK,CAAC;EAC9B,CAAC,CAAC,MAAM;IACN,OAAOC,SAAS;EAClB;AACF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,YAAYA,CAAC;EAC3BC,QAAQ;EACRL,KAAK;EACLM,KAAK;EACLC,WAAW;EACXC,YAAY;EACZC,eAAe;EACfC;AACiB,CAAC,EAAE;EACpB,IAAInB,QAAQ,CAACO,EAAE,KAAK,KAAK,IAAID,kBAAkB,KAAK,IAAI,EAAE;IACxD,IAAIc,OAAO,EAAE;MACXC,OAAO,CAACC,IAAI,CAAC,2CAA2C,CAAC;IAC3D;IACA,oBAAOlB,IAAA,CAACF,IAAI;MAACa,KAAK,EAAEA;IAAM,CAAE,CAAC;EAC/B;;EAEA;EACA,oBACEX,IAAA,CAACmB,iBAAiB;IAChBT,QAAQ,EAAEA,QAAS;IACnBL,KAAK,EAAEA,KAAM;IACbM,KAAK,EAAEA,KAAM;IACbC,WAAW,EAAEA,WAAY;IACzBC,YAAY,EAAEA,YAAa;IAC3BC,eAAe,EAAEA,eAAgB;IACjCC,mBAAmB,EAAEA,mBAAoB;IACzCK,eAAe,EAAElB;EAAmB,CACrC,CAAC;AAEN;;AAEA;;AAKA,SAASiB,iBAAiBA,CAAC;EACzBT,QAAQ;EACRL,KAAK;EACLM,KAAK;EACLC,WAAW;EACXC,YAAY;EACZC,eAAe;EACfC,mBAAmB;EACnBK;AACU,CAAC,EAAE;EACb,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG3B,QAAQ,CAAqBW,SAAS,CAAC;EAC3E,MAAMiB,YAAY,GAAG7B,MAAM,CAAqBY,SAAS,CAAC;;EAE1D;EACAiB,YAAY,CAACC,OAAO,GAAGpB,cAAc,CAACC,KAAK,CAAC;EAE5C,MAAMoB,uBAAuB,GAAGhC,WAAW,CACxCiC,CAA+C,IAAK;IACnD,MAAM;MAAEC;IAAO,CAAC,GAAGD,CAAC,CAACE,WAAW,CAACC,WAAW;IAC5C,IAAIF,MAAM,GAAG,CAAC,EAAEL,aAAa,CAACK,MAAM,CAAC;IACrCZ,mBAAmB,GAAGW,CAAC,CAAC;EAC1B,CAAC,EACD,CAACX,mBAAmB,CACtB,CAAC;EAED,MAAMe,eAAe,GAAGrC,WAAW,CAChCiC,CAAuC,IAAK;IAC3Cd,WAAW,GAAGc,CAAC,CAAC;EAClB,CAAC,EACD,CAACd,WAAW,CACd,CAAC;EAED,MAAMmB,gBAAgB,GAAGtC,WAAW,CACjCiC,CAAwC,IAAK;IAC5Cb,YAAY,GAAGa,CAAC,CAAC;EACnB,CAAC,EACD,CAACb,YAAY,CACf,CAAC;EAED,MAAMmB,mBAAmB,GAAGvC,WAAW;EACrC;EACA;EACCiC,CAAmG,IAAK;IACvG,IAAI,CAACZ,eAAe,EAAE;IACtB,MAAM;MAAEmB,SAAS;MAAEC,OAAO;MAAEC,QAAQ,EAAEC,GAAG;MAAEC;IAAS,CAAC,GAAGX,CAAC,CAACE,WAAW;IACrE,MAAMU,OAAO,GAAG;MACd,GAAGZ,CAAC;MACJE,WAAW,EAAE;QACXK,SAAS;QACTC,OAAO;QACPC,QAAQ,EAAEC,GAAG,GAAGA,GAAG,CAACG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;QACpCF,QAAQ,EAAEA,QAAQ,IAAI/B;MACxB;IACF,CAAC;IACDQ,eAAe,CAACwB,OAA8D,CAAC;EACjF,CAAC,EACD,CAACxB,eAAe,CAClB,CAAC;EAED,oBACEd,IAAA,CAACoB,eAAe;IACdV,QAAQ,EAAEA,QAAS;IACnB8B,SAAS,EAAEjB,YAAY,CAACC,OAAQ;IAChCb,KAAK,EAAE,CAACU,UAAU,KAAKf,SAAS,IAAImC,MAAM,CAACpB,UAAU,CAACA,UAAU,CAAC,EAAEV,KAAK,CAAE;IAC1EC,WAAW,EAAEkB,eAAgB;IAC7BjB,YAAY,EAAEkB,gBAAiB;IAC/BjB,eAAe,EAAEkB,mBAAoB;IACrCjB,mBAAmB,EAAEU;EAAwB,CAC9C,CAAC;AAEN;;AAEA;;AAEA,MAAMgB,MAAM,GAAG;EACb;EACApB,UAAU,EAAGqB,CAAS,KAAM;IAAEf,MAAM,EAAEe;EAAE,CAAC;AAC3C,CAAC","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.4.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",
@@ -15,11 +15,11 @@ Pod::Spec.new do |s|
15
15
  s.source_files = "ios/**/*.{h,m,mm,swift}"
16
16
  s.swift_version = "5.9"
17
17
 
18
- # Exposes React Objective-C headers to Swift files inside this pod.
18
+ # Allow the Swift compiler to find the MarkdownView module when it is added
19
+ # to the host app via Xcode's Swift Package integration.
20
+ # Framework targets cannot use bridging headers; ObjC↔Swift interop is handled
21
+ # via the auto-generated "-Swift.h" header imported in RNMarkdownViewManager.m.
19
22
  s.pod_target_xcconfig = {
20
- "SWIFT_OBJC_BRIDGING_HEADER" => "$(PODS_TARGET_SRCROOT)/ios/react-native-markdownview-Bridging-Header.h",
21
- # Allow the Swift compiler to find the MarkdownView Swift module when it is
22
- # added to the host app via SPM (Xcode embeds SPM-built modules here).
23
23
  "SWIFT_INCLUDE_PATHS" => "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/PackageFrameworks/**",
24
24
  }
25
25
 
@@ -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 {
@@ -1,16 +0,0 @@
1
- import React
2
- import UIKit
3
-
4
- /// Old Architecture view manager.
5
- /// The ObjC bridge in RNMarkdownViewManager.m exports props and this class.
6
- @objc(RNMarkdownViewManager)
7
- final class RNMarkdownViewManager: RCTViewManager {
8
-
9
- override func view() -> UIView! {
10
- RNMarkdownView()
11
- }
12
-
13
- override static func requiresMainQueueSetup() -> Bool {
14
- true
15
- }
16
- }
@@ -1,12 +0,0 @@
1
- /**
2
- * Bridging header for Swift ↔ Objective-C interop within this pod.
3
- *
4
- * The CocoaPods build system picks up SWIFT_OBJC_BRIDGING_HEADER via
5
- * the pod_target_xcconfig in the podspec and makes these React Native
6
- * Objective-C headers visible to all Swift source files in the pod.
7
- */
8
- #import <React/RCTViewManager.h>
9
- #import <React/RCTBridgeModule.h>
10
- #import <React/RCTEventEmitter.h>
11
- #import <React/RCTView.h>
12
- #import <React/RCTUIManager.h>