react-native-typerich 0.1.13 → 1.0.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.
@@ -65,7 +65,6 @@ class TypeRichTextInputView : AppCompatEditText {
65
65
  private var isSettingTextFromJS = false
66
66
  private var isInitialized = false
67
67
 
68
-
69
68
  constructor(context: Context) : super(context) {
70
69
  prepareComponent()
71
70
  }
@@ -303,6 +302,10 @@ class TypeRichTextInputView : AppCompatEditText {
303
302
  super.onSelectionChanged(selStart, selEnd)
304
303
  if (isDuringTransaction) return
305
304
 
305
+ dispatchSelectionChangeEvent(selStart,selEnd)
306
+ }
307
+
308
+ fun dispatchSelectionChangeEvent(selStart: Int, selEnd: Int){
306
309
  val reactContext = context as? ReactContext ?: return
307
310
  val dispatcher = UIManagerHelper.getEventDispatcherForReactTag(reactContext, id)
308
311
  ?: return
@@ -321,7 +324,6 @@ class TypeRichTextInputView : AppCompatEditText {
321
324
  )
322
325
  }
323
326
 
324
-
325
327
  override fun clearFocus() {
326
328
  super.clearFocus()
327
329
  inputMethodManager?.hideSoftInputFromWindow(windowToken, 0)
@@ -329,6 +331,7 @@ class TypeRichTextInputView : AppCompatEditText {
329
331
 
330
332
  override fun onFocusChanged(focused: Boolean, direction: Int, previouslyFocusedRect: Rect?) {
331
333
  super.onFocusChanged(focused, direction, previouslyFocusedRect)
334
+
332
335
  val reactContext = context as ReactContext
333
336
  val surfaceId = UIManagerHelper.getSurfaceId(reactContext)
334
337
  val dispatcher = UIManagerHelper.getEventDispatcherForReactTag(reactContext, id)
@@ -355,7 +358,8 @@ class TypeRichTextInputView : AppCompatEditText {
355
358
  fun requestFocusProgrammatically() {
356
359
  requestFocus()
357
360
  inputMethodManager?.showSoftInput(this, 0)
358
- setSelection(text?.length ?: 0)
361
+ // setSelection(text?.length ?: 0)
362
+ setSelection(selectionStart,selectionEnd)
359
363
  }
360
364
 
361
365
  fun setMultiline(enabled: Boolean) {
@@ -418,7 +422,30 @@ class TypeRichTextInputView : AppCompatEditText {
418
422
  }
419
423
  } finally {
420
424
  isSettingTextFromJS = false
425
+ layoutManager.invalidateLayout()
426
+ }
427
+ }
428
+
429
+ fun insertTextAt(start: Int, end: Int, insert: String) {
430
+ val editable = editableText ?: return
431
+
432
+ val safeStart = start.coerceIn(0, editable.length)
433
+ val safeEnd = end.coerceIn(0, editable.length)
434
+
435
+ var newCursor = safeStart
436
+
437
+ isSettingTextFromJS = true
438
+ try {
439
+ runAsATransaction {
440
+ editable.replace(safeStart, safeEnd, insert) // this will not emit selectionChange event cause of transaction
441
+ newCursor = safeStart + insert.length
442
+ setSelection(newCursor, newCursor)
443
+ }
444
+ } finally {
445
+ isSettingTextFromJS = false
446
+ layoutManager.invalidateLayout()
421
447
  }
448
+ dispatchSelectionChangeEvent(newCursor,newCursor) // manually emit selectionChange event
422
449
  }
423
450
 
424
451
  fun setAutoFocus(autoFocus: Boolean) {
@@ -53,6 +53,11 @@ class TypeRichTextInputViewManager :
53
53
  view?.setDefaultValue(value)
54
54
  }
55
55
 
56
+ @ReactProp(name = "value")
57
+ override fun setValue(view: TypeRichTextInputView?, value: String?) {
58
+ view?.setValue(value)
59
+ }
60
+
56
61
  @ReactProp(name = "color")
57
62
  override fun setColor(view: TypeRichTextInputView, value: Int?) {
58
63
  if (value != null) view.setTextColor(value)
@@ -175,10 +180,14 @@ class TypeRichTextInputViewManager :
175
180
  view?.clearFocus()
176
181
  }
177
182
 
178
- override fun setValue(view: TypeRichTextInputView?, text: String) {
183
+ override fun setText(view: TypeRichTextInputView?, text: String) {
179
184
  view?.setValue(text)
180
185
  }
181
186
 
187
+ override fun insertTextAt(view: TypeRichTextInputView?,start:Int,end:Int, text:String) {
188
+ view?.insertTextAt(start,end, text)
189
+ }
190
+
182
191
  override fun setSelection(
183
192
  view: TypeRichTextInputView?,
184
193
  start: Int,
@@ -46,9 +46,9 @@ const TypeRichTextInput = /*#__PURE__*/forwardRef((props, ref) => {
46
46
  Commands.blur(nativeRef.current);
47
47
  }
48
48
  },
49
- setValue: text => {
49
+ setText: text => {
50
50
  if (isAndroid && nativeRef.current) {
51
- Commands.setValue(nativeRef.current, text);
51
+ Commands.setText(nativeRef.current, text);
52
52
  }
53
53
  },
54
54
  setSelection(start, end) {
@@ -56,6 +56,11 @@ const TypeRichTextInput = /*#__PURE__*/forwardRef((props, ref) => {
56
56
  Commands.setSelection(nativeRef.current, start, end);
57
57
  }
58
58
  },
59
+ insertTextAt: (start, end, text) => {
60
+ if (isAndroid && nativeRef.current) {
61
+ Commands.insertTextAt(nativeRef.current, start, end, text);
62
+ }
63
+ },
59
64
  getNativeRef: () => nativeRef.current
60
65
  }));
61
66
 
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","useImperativeHandle","useRef","Platform","View","Commands","jsx","_jsx","NativeTypeRichTextInput","OS","require","default","normalizeEvent","event","nativeEvent","isAndroid","TypeRichTextInput","props","ref","nativeRef","focus","current","blur","setValue","text","setSelection","start","end","getNativeRef","handlePasteImage","data","undefined","onPasteImageData","handleOnChangeTextEvent","e","onChangeText","value","handleonChangeSelectionEvent","onChangeSelection","androidExperimentalSynchronousEvents","onFocus","onBlur","restProps","onInputFocus","onInputBlur","onPasteImage"],"sourceRoot":"../../src","sources":["TypeRichTextInput.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","useImperativeHandle","useRef","Platform","View","Commands","jsx","_jsx","NativeTypeRichTextInput","OS","require","default","normalizeEvent","event","nativeEvent","isAndroid","TypeRichTextInput","props","ref","nativeRef","focus","current","blur","setText","text","setSelection","start","end","insertTextAt","getNativeRef","handlePasteImage","data","undefined","onPasteImageData","handleOnChangeTextEvent","e","onChangeText","value","handleonChangeSelectionEvent","onChangeSelection","androidExperimentalSynchronousEvents","onFocus","onBlur","restProps","onInputFocus","onInputBlur","onPasteImage"],"sourceRoot":"../../src","sources":["TypeRichTextInput.tsx"],"mappings":"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","ignoreList":[]}
@@ -34,6 +34,7 @@ export interface onPasteImageEventData {
34
34
 
35
35
  export interface TypeRichTextInputNativeProps extends ViewProps {
36
36
  // base props
37
+ value?: string;
37
38
  autoFocus?: boolean;
38
39
  editable?: boolean;
39
40
  defaultValue?: string;
@@ -77,7 +78,13 @@ interface NativeCommands {
77
78
  // General commands
78
79
  focus: (viewRef: React.ElementRef<ComponentType>) => void;
79
80
  blur: (viewRef: React.ElementRef<ComponentType>) => void;
80
- setValue: (viewRef: React.ElementRef<ComponentType>, text: string) => void;
81
+ setText: (viewRef: React.ElementRef<ComponentType>, text: string) => void;
82
+ insertTextAt: (
83
+ viewRef: React.ElementRef<ComponentType>,
84
+ start: Int32,
85
+ end: Int32,
86
+ text: string
87
+ ) => void;
81
88
  setSelection: (
82
89
  viewRef: React.ElementRef<ComponentType>,
83
90
  start: Int32,
@@ -90,8 +97,9 @@ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
90
97
  // General commands
91
98
  'focus',
92
99
  'blur',
93
- 'setValue',
100
+ 'setText',
94
101
  'setSelection',
102
+ 'insertTextAt',
95
103
  ],
96
104
  });
97
105
 
@@ -17,7 +17,8 @@ export interface TypeRichTextInputProps extends Omit<TypeRichTextInputNativeProp
17
17
  export interface TypeRichTextInputRef {
18
18
  focus: () => void;
19
19
  blur: () => void;
20
- setValue: (text: string) => void;
20
+ setText: (text: string) => void;
21
+ insertTextAt: (start: number, end: number, text: string) => void;
21
22
  setSelection: (start: number, end: number) => void;
22
23
  getNativeRef: () => any | null;
23
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TypeRichTextInput.d.ts","sourceRoot":"","sources":["../../../src/TypeRichTextInput.tsx"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EAClC,MAAM,oCAAoC,CAAC;AAW5C,KAAK,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,WAAW,EAAE,CAAC,CAAA;CAAE,CAAC;AAElD,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAK/D;AAGD,MAAM,WAAW,sBACf,SAAQ,IAAI,CACV,4BAA4B,EAC1B,cAAc,GACd,mBAAmB,GACnB,cAAc,GACd,aAAa,GACb,cAAc,CACjB;IAED,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAC1B,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;KACd,KAAK,IAAI,CAAC;IACX,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;CAC1D;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,YAAY,EAAE,MAAM,GAAG,GAAG,IAAI,CAAC;CAChC;AAID;;;;;;;;;;GAUG;AACH,QAAA,MAAM,iBAAiB,yHA8FtB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"TypeRichTextInput.d.ts","sourceRoot":"","sources":["../../../src/TypeRichTextInput.tsx"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EAClC,MAAM,oCAAoC,CAAC;AAW5C,KAAK,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,WAAW,EAAE,CAAC,CAAA;CAAE,CAAC;AAElD,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAK/D;AAGD,MAAM,WAAW,sBACf,SAAQ,IAAI,CACV,4BAA4B,EAC1B,cAAc,GACd,mBAAmB,GACnB,cAAc,GACd,aAAa,GACb,cAAc,CACjB;IAED,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAC1B,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;KACd,KAAK,IAAI,CAAC;IACX,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;CAC1D;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,YAAY,EAAE,MAAM,GAAG,GAAG,IAAI,CAAC;CAChC;AAID;;;;;;;;;;GAUG;AACH,QAAA,MAAM,iBAAiB,yHAmGtB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -21,6 +21,7 @@ export interface onPasteImageEventData {
21
21
  };
22
22
  }
23
23
  export interface TypeRichTextInputNativeProps extends ViewProps {
24
+ value?: string;
24
25
  autoFocus?: boolean;
25
26
  editable?: boolean;
26
27
  defaultValue?: string;
@@ -51,7 +52,8 @@ type ComponentType = HostComponent<TypeRichTextInputNativeProps>;
51
52
  interface NativeCommands {
52
53
  focus: (viewRef: React.ElementRef<ComponentType>) => void;
53
54
  blur: (viewRef: React.ElementRef<ComponentType>) => void;
54
- setValue: (viewRef: React.ElementRef<ComponentType>, text: string) => void;
55
+ setText: (viewRef: React.ElementRef<ComponentType>, text: string) => void;
56
+ insertTextAt: (viewRef: React.ElementRef<ComponentType>, start: Int32, end: Int32, text: string) => void;
55
57
  setSelection: (viewRef: React.ElementRef<ComponentType>, start: Int32, end: Int32) => void;
56
58
  }
57
59
  export declare const Commands: NativeCommands;
@@ -1 +1 @@
1
- {"version":3,"file":"TypeRichTextInputNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/TypeRichTextInputNativeComponent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TypeRichTextInputNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/TypeRichTextInputNativeComponent.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-typerich",
3
- "version": "0.1.13",
3
+ "version": "1.0.0",
4
4
  "description": "Textinput replacement",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -54,7 +54,8 @@ export interface TypeRichTextInputProps
54
54
  export interface TypeRichTextInputRef {
55
55
  focus: () => void;
56
56
  blur: () => void;
57
- setValue: (text: string) => void;
57
+ setText: (text: string) => void;
58
+ insertTextAt: (start: number, end: number, text: string) => void;
58
59
  setSelection: (start: number, end: number) => void;
59
60
  getNativeRef: () => any | null;
60
61
  }
@@ -87,9 +88,9 @@ const TypeRichTextInput = forwardRef(
87
88
  Commands.blur(nativeRef.current);
88
89
  }
89
90
  },
90
- setValue: (text: string) => {
91
+ setText: (text: string) => {
91
92
  if (isAndroid && nativeRef.current) {
92
- Commands.setValue(nativeRef.current, text);
93
+ Commands.setText(nativeRef.current, text);
93
94
  }
94
95
  },
95
96
  setSelection(start, end) {
@@ -97,6 +98,11 @@ const TypeRichTextInput = forwardRef(
97
98
  Commands.setSelection(nativeRef.current, start, end);
98
99
  }
99
100
  },
101
+ insertTextAt: (start: number, end: number, text: string) => {
102
+ if (isAndroid && nativeRef.current) {
103
+ Commands.insertTextAt(nativeRef.current, start, end, text);
104
+ }
105
+ },
100
106
  getNativeRef: () => nativeRef.current,
101
107
  }));
102
108
 
@@ -34,6 +34,7 @@ export interface onPasteImageEventData {
34
34
 
35
35
  export interface TypeRichTextInputNativeProps extends ViewProps {
36
36
  // base props
37
+ value?: string;
37
38
  autoFocus?: boolean;
38
39
  editable?: boolean;
39
40
  defaultValue?: string;
@@ -77,7 +78,13 @@ interface NativeCommands {
77
78
  // General commands
78
79
  focus: (viewRef: React.ElementRef<ComponentType>) => void;
79
80
  blur: (viewRef: React.ElementRef<ComponentType>) => void;
80
- setValue: (viewRef: React.ElementRef<ComponentType>, text: string) => void;
81
+ setText: (viewRef: React.ElementRef<ComponentType>, text: string) => void;
82
+ insertTextAt: (
83
+ viewRef: React.ElementRef<ComponentType>,
84
+ start: Int32,
85
+ end: Int32,
86
+ text: string
87
+ ) => void;
81
88
  setSelection: (
82
89
  viewRef: React.ElementRef<ComponentType>,
83
90
  start: Int32,
@@ -90,8 +97,9 @@ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
90
97
  // General commands
91
98
  'focus',
92
99
  'blur',
93
- 'setValue',
100
+ 'setText',
94
101
  'setSelection',
102
+ 'insertTextAt',
95
103
  ],
96
104
  });
97
105