react-native-typerich 0.1.10 → 0.1.12
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/TypeRichTextInput.podspec +1 -2
- package/android/src/main/java/com/typerich/TypeRichTextInputView.kt +6 -1
- package/ios/TypeRichTextInputView.h +0 -1
- package/ios/TypeRichTextInputView.mm +20 -18
- package/ios/TypeRichTextInputViewManager.mm +15 -9
- package/lib/module/TypeRichTextInput.js +22 -6
- package/lib/module/TypeRichTextInput.js.map +1 -1
- package/lib/typescript/src/TypeRichTextInput.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/TypeRichTextInput.tsx +22 -8
|
@@ -14,8 +14,7 @@ Pod::Spec.new do |s|
|
|
|
14
14
|
s.source = { :git => "https://github.com/divyanshu-patil/react-native-typerich.git", :tag => "#{s.version}" }
|
|
15
15
|
|
|
16
16
|
# s.source_files = "ios/**/*.{h,m,mm,swift,cpp}"
|
|
17
|
-
s.source_files =
|
|
18
|
-
s.private_header_files = "ios/**/*.h"
|
|
17
|
+
s.source_files = "ios/**/*.{h,m,mm,cpp}"
|
|
19
18
|
|
|
20
19
|
install_modules_dependencies(s)
|
|
21
20
|
end
|
|
@@ -211,7 +211,12 @@ class TypeRichTextInputView : AppCompatEditText {
|
|
|
211
211
|
|
|
212
212
|
// text
|
|
213
213
|
val text = item.coerceToText(context).toString()
|
|
214
|
-
|
|
214
|
+
val editable = editableText
|
|
215
|
+
val start = selectionStart.coerceAtLeast(0)
|
|
216
|
+
val end = selectionEnd.coerceAtLeast(0)
|
|
217
|
+
|
|
218
|
+
editable.replace(minOf(start, end), maxOf(start, end), text)
|
|
219
|
+
|
|
215
220
|
return true
|
|
216
221
|
}
|
|
217
222
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
#import "TypeRichTextInputView.h"
|
|
2
2
|
|
|
3
|
-
#import <react/renderer/components/TypeRichTextInputViewSpec/ComponentDescriptors.h>
|
|
4
3
|
#import <react/renderer/components/TypeRichTextInputViewSpec/EventEmitters.h>
|
|
5
4
|
#import <react/renderer/components/TypeRichTextInputViewSpec/Props.h>
|
|
6
5
|
#import <react/renderer/components/TypeRichTextInputViewSpec/RCTComponentViewHelpers.h>
|
|
@@ -10,30 +9,25 @@
|
|
|
10
9
|
using namespace facebook::react;
|
|
11
10
|
|
|
12
11
|
@interface TypeRichTextInputView () <RCTTypeRichTextInputViewViewProtocol>
|
|
13
|
-
|
|
14
12
|
@end
|
|
15
13
|
|
|
16
14
|
@implementation TypeRichTextInputView {
|
|
17
|
-
UIView *
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
+ (ComponentDescriptorProvider)componentDescriptorProvider
|
|
21
|
-
{
|
|
22
|
-
return concreteComponentDescriptorProvider<TypeRichTextInputViewComponentDescriptor>();
|
|
15
|
+
UIView *_view;
|
|
23
16
|
}
|
|
24
17
|
|
|
25
18
|
- (instancetype)initWithFrame:(CGRect)frame
|
|
26
19
|
{
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
20
|
+
if (self = [super initWithFrame:frame]) {
|
|
21
|
+
static const auto defaultProps = std::make_shared<const TypeRichTextInputViewProps>();
|
|
22
|
+
_props = defaultProps;
|
|
30
23
|
|
|
31
|
-
|
|
24
|
+
_view = [[UIView alloc] init];
|
|
25
|
+
_view.backgroundColor = [UIColor lightGrayColor]; // Visual indicator it's a dummy view
|
|
32
26
|
|
|
33
|
-
|
|
34
|
-
|
|
27
|
+
self.contentView = _view;
|
|
28
|
+
}
|
|
35
29
|
|
|
36
|
-
|
|
30
|
+
return self;
|
|
37
31
|
}
|
|
38
32
|
|
|
39
33
|
- (void)updateProps:(Props::Shared const &)props oldProps:(Props::Shared const &)oldProps
|
|
@@ -41,12 +35,20 @@ using namespace facebook::react;
|
|
|
41
35
|
const auto &oldViewProps = *std::static_pointer_cast<TypeRichTextInputViewProps const>(_props);
|
|
42
36
|
const auto &newViewProps = *std::static_pointer_cast<TypeRichTextInputViewProps const>(props);
|
|
43
37
|
|
|
38
|
+
// No-op: just accept props without doing anything
|
|
39
|
+
|
|
44
40
|
[super updateProps:props oldProps:oldProps];
|
|
45
41
|
}
|
|
46
42
|
|
|
47
|
-
|
|
43
|
+
// Dummy command implementations (no-op)
|
|
44
|
+
- (void)handleCommand:(NSString *)commandName args:(NSArray *)args
|
|
48
45
|
{
|
|
49
|
-
|
|
46
|
+
// Commands like focus, blur, setValue, setSelection do nothing
|
|
50
47
|
}
|
|
51
48
|
|
|
52
|
-
@end
|
|
49
|
+
@end
|
|
50
|
+
|
|
51
|
+
Class<RCTComponentViewProtocol> TypeRichTextInputViewCls(void)
|
|
52
|
+
{
|
|
53
|
+
return TypeRichTextInputView.class;
|
|
54
|
+
}
|
|
@@ -1,21 +1,27 @@
|
|
|
1
|
-
|
|
2
1
|
#import <React/RCTViewManager.h>
|
|
3
|
-
#import <React/
|
|
4
|
-
#import "
|
|
2
|
+
#import <React/RCTUIManager.h>
|
|
3
|
+
#import "RCTFabricComponentsPlugins.h"
|
|
5
4
|
|
|
6
|
-
@interface TypeRichTextInputViewManager :
|
|
5
|
+
@interface TypeRichTextInputViewManager : RCTViewManager
|
|
7
6
|
@end
|
|
8
7
|
|
|
9
8
|
@implementation TypeRichTextInputViewManager
|
|
10
9
|
|
|
11
|
-
|
|
10
|
+
RCT_EXPORT_MODULE(TypeRichTextInputView)
|
|
11
|
+
|
|
12
|
+
+ (BOOL)requiresMainQueueSetup
|
|
12
13
|
{
|
|
13
|
-
|
|
14
|
+
return NO;
|
|
14
15
|
}
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
- (UIView *)view
|
|
17
18
|
{
|
|
18
|
-
|
|
19
|
+
// For Paper (old architecture) - return a simple UIView
|
|
20
|
+
UIView *view = [[UIView alloc] init];
|
|
21
|
+
view.backgroundColor = [UIColor lightGrayColor];
|
|
22
|
+
return view;
|
|
19
23
|
}
|
|
20
24
|
|
|
21
|
-
@end
|
|
25
|
+
@end
|
|
26
|
+
|
|
27
|
+
Class<RCTComponentViewProtocol> TypeRichTextInputViewCls(void);
|
|
@@ -20,6 +20,8 @@ export function normalizeEvent(event) {
|
|
|
20
20
|
|
|
21
21
|
// Public facing props (same as NativeProps but events normalized)
|
|
22
22
|
|
|
23
|
+
const isAndroid = Platform.OS === 'android';
|
|
24
|
+
|
|
23
25
|
/**
|
|
24
26
|
* TypeRichTextInput
|
|
25
27
|
*
|
|
@@ -35,22 +37,22 @@ const TypeRichTextInput = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
35
37
|
const nativeRef = useRef(null);
|
|
36
38
|
useImperativeHandle(ref, () => ({
|
|
37
39
|
focus: () => {
|
|
38
|
-
if (nativeRef.current) {
|
|
40
|
+
if (isAndroid && nativeRef.current) {
|
|
39
41
|
Commands.focus(nativeRef.current);
|
|
40
42
|
}
|
|
41
43
|
},
|
|
42
44
|
blur: () => {
|
|
43
|
-
if (nativeRef.current) {
|
|
45
|
+
if (isAndroid && nativeRef.current) {
|
|
44
46
|
Commands.blur(nativeRef.current);
|
|
45
47
|
}
|
|
46
48
|
},
|
|
47
49
|
setValue: text => {
|
|
48
|
-
if (nativeRef.current) {
|
|
50
|
+
if (isAndroid && nativeRef.current) {
|
|
49
51
|
Commands.setValue(nativeRef.current, text);
|
|
50
52
|
}
|
|
51
53
|
},
|
|
52
54
|
setSelection(start, end) {
|
|
53
|
-
if (nativeRef.current) {
|
|
55
|
+
if (isAndroid && nativeRef.current) {
|
|
54
56
|
Commands.setSelection(nativeRef.current, start, end);
|
|
55
57
|
}
|
|
56
58
|
},
|
|
@@ -79,10 +81,24 @@ const TypeRichTextInput = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
79
81
|
text: e.text
|
|
80
82
|
});
|
|
81
83
|
}
|
|
84
|
+
|
|
85
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
86
|
+
const {
|
|
87
|
+
// native-only / android-only props we never want on <View />
|
|
88
|
+
androidExperimentalSynchronousEvents,
|
|
89
|
+
onChangeSelection,
|
|
90
|
+
onChangeText,
|
|
91
|
+
onPasteImageData,
|
|
92
|
+
onFocus,
|
|
93
|
+
onBlur,
|
|
94
|
+
// everything else
|
|
95
|
+
...restProps
|
|
96
|
+
} = props;
|
|
97
|
+
/* eslint-enable @typescript-eslint/no-unused-vars */
|
|
98
|
+
|
|
82
99
|
return /*#__PURE__*/_jsx(NativeTypeRichTextInput, {
|
|
83
|
-
androidExperimentalSynchronousEvents: props.androidExperimentalSynchronousEvents,
|
|
84
100
|
ref: nativeRef,
|
|
85
|
-
...props,
|
|
101
|
+
...(isAndroid ? props : restProps),
|
|
86
102
|
onInputFocus: () => props.onFocus?.(),
|
|
87
103
|
onInputBlur: () => props.onBlur?.(),
|
|
88
104
|
onChangeText: handleOnChangeTextEvent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","useImperativeHandle","useRef","Platform","View","Commands","jsx","_jsx","NativeTypeRichTextInput","OS","require","default","normalizeEvent","event","nativeEvent","TypeRichTextInput","props","ref","nativeRef","focus","current","blur","setValue","text","setSelection","start","end","getNativeRef","handlePasteImage","data","undefined","onPasteImageData","handleOnChangeTextEvent","e","onChangeText","value","handleonChangeSelectionEvent","onChangeSelection","androidExperimentalSynchronousEvents","
|
|
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 +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;
|
|
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"}
|
package/package.json
CHANGED
|
@@ -59,6 +59,8 @@ export interface TypeRichTextInputRef {
|
|
|
59
59
|
getNativeRef: () => any | null;
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
+
const isAndroid = Platform.OS === 'android';
|
|
63
|
+
|
|
62
64
|
/**
|
|
63
65
|
* TypeRichTextInput
|
|
64
66
|
*
|
|
@@ -76,22 +78,22 @@ const TypeRichTextInput = forwardRef(
|
|
|
76
78
|
|
|
77
79
|
useImperativeHandle(ref, () => ({
|
|
78
80
|
focus: () => {
|
|
79
|
-
if (nativeRef.current) {
|
|
81
|
+
if (isAndroid && nativeRef.current) {
|
|
80
82
|
Commands.focus(nativeRef.current);
|
|
81
83
|
}
|
|
82
84
|
},
|
|
83
85
|
blur: () => {
|
|
84
|
-
if (nativeRef.current) {
|
|
86
|
+
if (isAndroid && nativeRef.current) {
|
|
85
87
|
Commands.blur(nativeRef.current);
|
|
86
88
|
}
|
|
87
89
|
},
|
|
88
90
|
setValue: (text: string) => {
|
|
89
|
-
if (nativeRef.current) {
|
|
91
|
+
if (isAndroid && nativeRef.current) {
|
|
90
92
|
Commands.setValue(nativeRef.current, text);
|
|
91
93
|
}
|
|
92
94
|
},
|
|
93
95
|
setSelection(start, end) {
|
|
94
|
-
if (nativeRef.current) {
|
|
96
|
+
if (isAndroid && nativeRef.current) {
|
|
95
97
|
Commands.setSelection(nativeRef.current, start, end);
|
|
96
98
|
}
|
|
97
99
|
},
|
|
@@ -137,13 +139,25 @@ const TypeRichTextInput = forwardRef(
|
|
|
137
139
|
});
|
|
138
140
|
}
|
|
139
141
|
|
|
142
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
143
|
+
const {
|
|
144
|
+
// native-only / android-only props we never want on <View />
|
|
145
|
+
androidExperimentalSynchronousEvents,
|
|
146
|
+
onChangeSelection,
|
|
147
|
+
onChangeText,
|
|
148
|
+
onPasteImageData,
|
|
149
|
+
onFocus,
|
|
150
|
+
onBlur,
|
|
151
|
+
|
|
152
|
+
// everything else
|
|
153
|
+
...restProps
|
|
154
|
+
} = props;
|
|
155
|
+
/* eslint-enable @typescript-eslint/no-unused-vars */
|
|
156
|
+
|
|
140
157
|
return (
|
|
141
158
|
<NativeTypeRichTextInput
|
|
142
|
-
androidExperimentalSynchronousEvents={
|
|
143
|
-
props.androidExperimentalSynchronousEvents
|
|
144
|
-
}
|
|
145
159
|
ref={nativeRef}
|
|
146
|
-
{...props}
|
|
160
|
+
{...(isAndroid ? props : restProps)}
|
|
147
161
|
onInputFocus={() => props.onFocus?.()}
|
|
148
162
|
onInputBlur={() => props.onBlur?.()}
|
|
149
163
|
onChangeText={handleOnChangeTextEvent}
|