react-native-ios-translate-sheet 0.0.1 → 1.0.1
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/README.md +12 -16
- package/lib/commonjs/IOSTranslateSheetViewNativeComponent.js.map +1 -1
- package/lib/commonjs/TranslateContext.js +55 -0
- package/lib/commonjs/TranslateContext.js.map +1 -0
- package/lib/commonjs/index.js +5 -5
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/useTranslate.js +15 -28
- package/lib/commonjs/useTranslate.js.map +1 -1
- package/lib/module/IOSTranslateSheetViewNativeComponent.js.map +1 -1
- package/lib/module/TranslateContext.js +48 -0
- package/lib/module/TranslateContext.js.map +1 -0
- package/lib/module/index.js +3 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/useTranslate.js +13 -26
- package/lib/module/useTranslate.js.map +1 -1
- package/lib/typescript/{module/src/IOSTranslateSheetViewNativeComponent.d.ts → IOSTranslateSheetViewNativeComponent.d.ts} +3 -3
- package/lib/typescript/IOSTranslateSheetViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/TranslateContext.d.ts +10 -0
- package/lib/typescript/TranslateContext.d.ts.map +1 -0
- package/lib/typescript/{commonjs/src/index.d.ts → index.d.ts} +1 -1
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/useTranslate.d.ts +8 -0
- package/lib/typescript/useTranslate.d.ts.map +1 -0
- package/package.json +12 -36
- package/src/IOSTranslateSheetViewNativeComponent.ts +5 -3
- package/src/TranslateContext.tsx +53 -0
- package/src/index.tsx +1 -1
- package/src/useTranslate.tsx +14 -28
- package/android/generated/java/com/facebook/react/viewmanagers/IOSTranslateSheetViewManagerDelegate.java +0 -38
- package/android/generated/java/com/facebook/react/viewmanagers/IOSTranslateSheetViewManagerInterface.java +0 -20
- package/android/generated/jni/CMakeLists.txt +0 -36
- package/android/generated/jni/RNIOSTranslateSheetViewSpec-generated.cpp +0 -22
- package/android/generated/jni/RNIOSTranslateSheetViewSpec.h +0 -24
- package/android/generated/jni/react/renderer/components/RNIOSTranslateSheetViewSpec/ComponentDescriptors.cpp +0 -22
- package/android/generated/jni/react/renderer/components/RNIOSTranslateSheetViewSpec/ComponentDescriptors.h +0 -24
- package/android/generated/jni/react/renderer/components/RNIOSTranslateSheetViewSpec/EventEmitters.cpp +0 -24
- package/android/generated/jni/react/renderer/components/RNIOSTranslateSheetViewSpec/EventEmitters.h +0 -25
- package/android/generated/jni/react/renderer/components/RNIOSTranslateSheetViewSpec/Props.cpp +0 -27
- package/android/generated/jni/react/renderer/components/RNIOSTranslateSheetViewSpec/Props.h +0 -29
- package/android/generated/jni/react/renderer/components/RNIOSTranslateSheetViewSpec/RNIOSTranslateSheetViewSpecJSI-generated.cpp +0 -17
- package/android/generated/jni/react/renderer/components/RNIOSTranslateSheetViewSpec/RNIOSTranslateSheetViewSpecJSI.h +0 -19
- package/android/generated/jni/react/renderer/components/RNIOSTranslateSheetViewSpec/ShadowNodes.cpp +0 -17
- package/android/generated/jni/react/renderer/components/RNIOSTranslateSheetViewSpec/ShadowNodes.h +0 -32
- package/android/generated/jni/react/renderer/components/RNIOSTranslateSheetViewSpec/States.cpp +0 -16
- package/android/generated/jni/react/renderer/components/RNIOSTranslateSheetViewSpec/States.h +0 -29
- package/ios/generated/RNIOSTranslateSheetViewSpec/ComponentDescriptors.cpp +0 -22
- package/ios/generated/RNIOSTranslateSheetViewSpec/ComponentDescriptors.h +0 -24
- package/ios/generated/RNIOSTranslateSheetViewSpec/EventEmitters.cpp +0 -24
- package/ios/generated/RNIOSTranslateSheetViewSpec/EventEmitters.h +0 -25
- package/ios/generated/RNIOSTranslateSheetViewSpec/Props.cpp +0 -27
- package/ios/generated/RNIOSTranslateSheetViewSpec/Props.h +0 -29
- package/ios/generated/RNIOSTranslateSheetViewSpec/RCTComponentViewHelpers.h +0 -20
- package/ios/generated/RNIOSTranslateSheetViewSpec/RNIOSTranslateSheetViewSpec-generated.mm +0 -16
- package/ios/generated/RNIOSTranslateSheetViewSpec/RNIOSTranslateSheetViewSpec.h +0 -38
- package/ios/generated/RNIOSTranslateSheetViewSpec/ShadowNodes.cpp +0 -17
- package/ios/generated/RNIOSTranslateSheetViewSpec/ShadowNodes.h +0 -32
- package/ios/generated/RNIOSTranslateSheetViewSpec/States.cpp +0 -16
- package/ios/generated/RNIOSTranslateSheetViewSpec/States.h +0 -29
- package/ios/generated/RNIOSTranslateSheetViewSpecJSI-generated.cpp +0 -17
- package/ios/generated/RNIOSTranslateSheetViewSpecJSI.h +0 -19
- package/lib/typescript/commonjs/src/IOSTranslateSheetViewNativeComponent.d.ts +0 -11
- package/lib/typescript/commonjs/src/IOSTranslateSheetViewNativeComponent.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/useTranslate.d.ts +0 -6
- package/lib/typescript/commonjs/src/useTranslate.d.ts.map +0 -1
- package/lib/typescript/module/src/IOSTranslateSheetViewNativeComponent.d.ts.map +0 -1
- package/lib/typescript/module/src/index.d.ts +0 -4
- package/lib/typescript/module/src/index.d.ts.map +0 -1
- package/lib/typescript/module/src/useTranslate.d.ts +0 -6
- package/lib/typescript/module/src/useTranslate.d.ts.map +0 -1
- /package/lib/{typescript/commonjs → commonjs}/package.json +0 -0
- /package/lib/{typescript/module → module}/package.json +0 -0
package/README.md
CHANGED
|
@@ -22,10 +22,6 @@
|
|
|
22
22
|
- 🌐 Access to all languages supported by iOS translation
|
|
23
23
|
- 📱 Native iOS UI and interactions
|
|
24
24
|
|
|
25
|
-
## Requirements
|
|
26
|
-
|
|
27
|
-
- iOS 17.4 or later
|
|
28
|
-
|
|
29
25
|
## Platform Compatibility
|
|
30
26
|
|
|
31
27
|
This library is designed specifically for iOS 17.4 and above. It can be safely installed in your React Native project regardless of your target iOS version or if you're developing for Android. However, please note:
|
|
@@ -53,24 +49,24 @@ cd ios && pod install
|
|
|
53
49
|
|
|
54
50
|
### Using the Hook
|
|
55
51
|
|
|
56
|
-
For a more convenient implementation, you can use the provided `
|
|
52
|
+
For a more convenient implementation, you can use the provided `useIOSTranslateSheet` hook:
|
|
57
53
|
|
|
58
54
|
```jsx
|
|
59
55
|
import React from 'react';
|
|
60
56
|
import { View, Button, StyleSheet, Text } from 'react-native';
|
|
61
|
-
import {
|
|
57
|
+
import { useIOSTranslateSheet } from 'react-native-ios-translate-sheet';
|
|
62
58
|
|
|
63
59
|
export default function App() {
|
|
64
|
-
const {
|
|
60
|
+
const { presentIOSTranslateSheet, IOSTranslateSheetView } = useIOSTranslateSheet();
|
|
65
61
|
|
|
66
62
|
const handleTranslate = () => {
|
|
67
|
-
|
|
63
|
+
presentIOSTranslateSheet('Hello world! This is a sample text to translate.');
|
|
68
64
|
};
|
|
69
65
|
|
|
70
66
|
return (
|
|
71
67
|
<View style={styles.container}>
|
|
72
|
-
{/* Add the
|
|
73
|
-
<
|
|
68
|
+
{/* Add the IOSTranslateSheetView component to your render tree */}
|
|
69
|
+
<IOSTranslateSheetView />
|
|
74
70
|
<Text style={styles.text}>
|
|
75
71
|
Press the button below to translate text
|
|
76
72
|
</Text>
|
|
@@ -96,11 +92,11 @@ const styles = StyleSheet.create({
|
|
|
96
92
|
});
|
|
97
93
|
```
|
|
98
94
|
|
|
99
|
-
The `
|
|
95
|
+
The `useIOSTranslateSheet` hook provides:
|
|
100
96
|
|
|
101
|
-
- `
|
|
102
|
-
- `
|
|
103
|
-
- `
|
|
97
|
+
- `presentIOSTranslateSheet(text)`: Function to show the translation sheet with the provided text
|
|
98
|
+
- `IOSTranslateSheetView`: A pre-configured component that handles the translation UI
|
|
99
|
+
- `isIOSTranslateSheetPresented`: Boolean state indicating if the translation sheet is currently visible
|
|
104
100
|
|
|
105
101
|
This approach simplifies state management and allows you to trigger translations from anywhere in your component.
|
|
106
102
|
|
|
@@ -159,7 +155,7 @@ const styles = StyleSheet.create({
|
|
|
159
155
|
|
|
160
156
|
### Important Note on View Positioning
|
|
161
157
|
|
|
162
|
-
> ⚠️ **Warning**: The `IOSTranslateSheetView` or `
|
|
158
|
+
> ⚠️ **Warning**: The `IOSTranslateSheetView` or `IOSTranslateSheetView` from the hook **must** cover the entire screen to work properly.
|
|
163
159
|
|
|
164
160
|
This is necessary because:
|
|
165
161
|
|
|
@@ -167,7 +163,7 @@ This is necessary because:
|
|
|
167
163
|
2. The component needs to overlay all other UI elements to ensure proper interaction
|
|
168
164
|
3. The iOS translation sheet is presented modally on top of your app's content
|
|
169
165
|
|
|
170
|
-
`<
|
|
166
|
+
`<IOSTranslateSheetView />` from the `useIOSTranslateSheet` hook is an absolute full-screen view, so place it well on your component tree to ensure it covers the entire screen. A good practice is to place it at the root level of your app or screen component.
|
|
171
167
|
|
|
172
168
|
If the view is not positioned correctly, the translation sheet may not appear or function as expected.
|
|
173
169
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","e","__esModule","default","_default","exports","codegenNativeComponent"],"sourceRoot":"../../src","sources":["IOSTranslateSheetViewNativeComponent.ts"],"mappings":";;;;;;AAKA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAS9E,IAAAG,+BAAsB,
|
|
1
|
+
{"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","e","__esModule","default","_default","exports","codegenNativeComponent"],"sourceRoot":"../../src","sources":["IOSTranslateSheetViewNativeComponent.ts"],"mappings":";;;;;;AAKA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAS9E,IAAAG,+BAAsB,EACnC,uBACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useIOSTranslateSheet = exports.TranslateProvider = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _IOSTranslateSheetViewNativeComponent = _interopRequireDefault(require("./IOSTranslateSheetViewNativeComponent"));
|
|
10
|
+
var _useTranslate = require("./useTranslate");
|
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
const TranslateContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
14
|
+
const TranslateProvider = ({
|
|
15
|
+
children
|
|
16
|
+
}) => {
|
|
17
|
+
const {
|
|
18
|
+
presentIOSTranslateSheet,
|
|
19
|
+
isIOSTranslateSheetPresented,
|
|
20
|
+
text,
|
|
21
|
+
opacity,
|
|
22
|
+
hideTranslateSheet
|
|
23
|
+
} = (0, _useTranslate.useInternalTranslateSheet)();
|
|
24
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(TranslateContext.Provider, {
|
|
25
|
+
value: {
|
|
26
|
+
presentIOSTranslateSheet
|
|
27
|
+
},
|
|
28
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_IOSTranslateSheetViewNativeComponent.default, {
|
|
29
|
+
text: text,
|
|
30
|
+
isPresented: isIOSTranslateSheetPresented,
|
|
31
|
+
onHide: hideTranslateSheet,
|
|
32
|
+
opacity: opacity,
|
|
33
|
+
style: styles.translateView
|
|
34
|
+
}), children]
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
exports.TranslateProvider = TranslateProvider;
|
|
38
|
+
const useIOSTranslateSheet = () => {
|
|
39
|
+
const context = (0, _react.useContext)(TranslateContext);
|
|
40
|
+
if (!context) {
|
|
41
|
+
throw new Error("useTranslateSheet must be used within a TranslateProvider");
|
|
42
|
+
}
|
|
43
|
+
return context;
|
|
44
|
+
};
|
|
45
|
+
exports.useIOSTranslateSheet = useIOSTranslateSheet;
|
|
46
|
+
const styles = _reactNative.StyleSheet.create({
|
|
47
|
+
translateView: {
|
|
48
|
+
position: "absolute",
|
|
49
|
+
top: 0,
|
|
50
|
+
left: 0,
|
|
51
|
+
right: 0,
|
|
52
|
+
bottom: 0
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=TranslateContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_IOSTranslateSheetViewNativeComponent","_interopRequireDefault","_useTranslate","_jsxRuntime","e","__esModule","default","TranslateContext","createContext","TranslateProvider","children","presentIOSTranslateSheet","isIOSTranslateSheetPresented","text","opacity","hideTranslateSheet","useInternalTranslateSheet","jsxs","Provider","value","jsx","isPresented","onHide","style","styles","translateView","exports","useIOSTranslateSheet","context","useContext","Error","StyleSheet","create","position","top","left","right","bottom"],"sourceRoot":"../../src","sources":["TranslateContext.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,qCAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AAA2D,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAG,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAM3D,MAAMG,gBAAgB,gBAAG,IAAAC,oBAAa,EAA8B,IAAI,CAAC;AAElE,MAAMC,iBAAiB,GAAGA,CAAC;EAAEC;AAAkC,CAAC,KAAK;EAC1E,MAAM;IACJC,wBAAwB;IACxBC,4BAA4B;IAC5BC,IAAI;IACJC,OAAO;IACPC;EACF,CAAC,GAAG,IAAAC,uCAAyB,EAAC,CAAC;EAE/B,oBACE,IAAAb,WAAA,CAAAc,IAAA,EAACV,gBAAgB,CAACW,QAAQ;IAACC,KAAK,EAAE;MAAER;IAAyB,CAAE;IAAAD,QAAA,gBAC7D,IAAAP,WAAA,CAAAiB,GAAA,EAACpB,qCAAA,CAAAM,OAAiB;MAChBO,IAAI,EAAEA,IAAK;MACXQ,WAAW,EAAET,4BAA6B;MAC1CU,MAAM,EAAEP,kBAAmB;MAC3BD,OAAO,EAAEA,OAAQ;MACjBS,KAAK,EAAEC,MAAM,CAACC;IAAc,CAC7B,CAAC,EACDf,QAAQ;EAAA,CACgB,CAAC;AAEhC,CAAC;AAACgB,OAAA,CAAAjB,iBAAA,GAAAA,iBAAA;AAEK,MAAMkB,oBAAoB,GAAGA,CAAA,KAAM;EACxC,MAAMC,OAAO,GAAG,IAAAC,iBAAU,EAACtB,gBAAgB,CAAC;EAC5C,IAAI,CAACqB,OAAO,EAAE;IACZ,MAAM,IAAIE,KAAK,CACb,2DACF,CAAC;EACH;EACA,OAAOF,OAAO;AAChB,CAAC;AAACF,OAAA,CAAAC,oBAAA,GAAAA,oBAAA;AAEF,MAAMH,MAAM,GAAGO,uBAAU,CAACC,MAAM,CAAC;EAC/BP,aAAa,EAAE;IACbQ,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -12,7 +12,7 @@ Object.defineProperty(exports, "IOSTranslateSheet", {
|
|
|
12
12
|
return _IOSTranslateSheetViewNativeComponent.default;
|
|
13
13
|
}
|
|
14
14
|
});
|
|
15
|
-
var _IOSTranslateSheetViewNativeComponent = _interopRequireWildcard(require("./IOSTranslateSheetViewNativeComponent
|
|
15
|
+
var _IOSTranslateSheetViewNativeComponent = _interopRequireWildcard(require("./IOSTranslateSheetViewNativeComponent"));
|
|
16
16
|
Object.keys(_IOSTranslateSheetViewNativeComponent).forEach(function (key) {
|
|
17
17
|
if (key === "default" || key === "__esModule") return;
|
|
18
18
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -24,15 +24,15 @@ Object.keys(_IOSTranslateSheetViewNativeComponent).forEach(function (key) {
|
|
|
24
24
|
}
|
|
25
25
|
});
|
|
26
26
|
});
|
|
27
|
-
var
|
|
28
|
-
Object.keys(
|
|
27
|
+
var _TranslateContext = require("./TranslateContext");
|
|
28
|
+
Object.keys(_TranslateContext).forEach(function (key) {
|
|
29
29
|
if (key === "default" || key === "__esModule") return;
|
|
30
30
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
31
|
-
if (key in exports && exports[key] ===
|
|
31
|
+
if (key in exports && exports[key] === _TranslateContext[key]) return;
|
|
32
32
|
Object.defineProperty(exports, key, {
|
|
33
33
|
enumerable: true,
|
|
34
34
|
get: function () {
|
|
35
|
-
return
|
|
35
|
+
return _TranslateContext[key];
|
|
36
36
|
}
|
|
37
37
|
});
|
|
38
38
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_IOSTranslateSheetViewNativeComponent","_interopRequireWildcard","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","
|
|
1
|
+
{"version":3,"names":["_IOSTranslateSheetViewNativeComponent","_interopRequireWildcard","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_TranslateContext","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,qCAAA,GAAAC,uBAAA,CAAAC,OAAA;AACAC,MAAA,CAAAC,IAAA,CAAAJ,qCAAA,EAAAK,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAN,qCAAA,CAAAM,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAd,qCAAA,CAAAM,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,iBAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,iBAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,iBAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,iBAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AAAmC,SAAAU,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAhB,wBAAAgB,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAN,GAAA,CAAAG,CAAA,OAAAO,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAvB,MAAA,CAAAS,cAAA,IAAAT,MAAA,CAAAwB,wBAAA,WAAAC,CAAA,IAAAX,CAAA,oBAAAW,CAAA,OAAApB,cAAA,CAAAC,IAAA,CAAAQ,CAAA,EAAAW,CAAA,SAAAC,CAAA,GAAAH,CAAA,GAAAvB,MAAA,CAAAwB,wBAAA,CAAAV,CAAA,EAAAW,CAAA,UAAAC,CAAA,KAAAA,CAAA,CAAAf,GAAA,IAAAe,CAAA,CAAAC,GAAA,IAAA3B,MAAA,CAAAS,cAAA,CAAAY,CAAA,EAAAI,CAAA,EAAAC,CAAA,IAAAL,CAAA,CAAAI,CAAA,IAAAX,CAAA,CAAAW,CAAA,YAAAJ,CAAA,CAAAF,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAU,GAAA,CAAAb,CAAA,EAAAO,CAAA,GAAAA,CAAA","ignoreList":[]}
|
|
@@ -3,40 +3,27 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.useInternalTranslateSheet = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
-
const useTranslate = () => {
|
|
12
|
-
const [isPresented, setIsPresented] = (0, _react.useState)(false);
|
|
8
|
+
const useInternalTranslateSheet = () => {
|
|
9
|
+
const [isIOSTranslateSheetPresented, setIsIOSTranslateSheetPresented] = (0, _react.useState)(false);
|
|
13
10
|
const [text, setText] = (0, _react.useState)("");
|
|
14
|
-
const
|
|
15
|
-
|
|
11
|
+
const [opacity, setOpacity] = (0, _react.useState)(0);
|
|
12
|
+
const presentIOSTranslateSheet = (_text, _opacity) => {
|
|
13
|
+
setIsIOSTranslateSheetPresented(true);
|
|
16
14
|
setText(_text);
|
|
15
|
+
setOpacity(_opacity ?? 0);
|
|
17
16
|
};
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
text: text,
|
|
21
|
-
isPresented: isPresented,
|
|
22
|
-
onHide: () => setIsPresented(false),
|
|
23
|
-
style: styles.translateView
|
|
24
|
-
});
|
|
17
|
+
const hideTranslateSheet = () => {
|
|
18
|
+
setIsIOSTranslateSheetPresented(false);
|
|
25
19
|
};
|
|
26
20
|
return {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
21
|
+
isIOSTranslateSheetPresented,
|
|
22
|
+
presentIOSTranslateSheet,
|
|
23
|
+
hideTranslateSheet,
|
|
24
|
+
text,
|
|
25
|
+
opacity
|
|
30
26
|
};
|
|
31
27
|
};
|
|
32
|
-
exports.
|
|
33
|
-
const styles = _reactNative.StyleSheet.create({
|
|
34
|
-
translateView: {
|
|
35
|
-
position: "absolute",
|
|
36
|
-
top: 0,
|
|
37
|
-
left: 0,
|
|
38
|
-
right: 0,
|
|
39
|
-
bottom: 0
|
|
40
|
-
}
|
|
41
|
-
});
|
|
28
|
+
exports.useInternalTranslateSheet = useInternalTranslateSheet;
|
|
42
29
|
//# sourceMappingURL=useTranslate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","
|
|
1
|
+
{"version":3,"names":["_react","require","useInternalTranslateSheet","isIOSTranslateSheetPresented","setIsIOSTranslateSheetPresented","useState","text","setText","opacity","setOpacity","presentIOSTranslateSheet","_text","_opacity","hideTranslateSheet","exports"],"sourceRoot":"../../src","sources":["useTranslate.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEO,MAAMC,yBAAyB,GAAGA,CAAA,KAAM;EAC7C,MAAM,CAACC,4BAA4B,EAAEC,+BAA+B,CAAC,GACnE,IAAAC,eAAQ,EAAC,KAAK,CAAC;EACjB,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAF,eAAQ,EAAC,EAAE,CAAC;EACpC,MAAM,CAACG,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAJ,eAAQ,EAAC,CAAC,CAAC;EAEzC,MAAMK,wBAAwB,GAAGA,CAACC,KAAa,EAAEC,QAAiB,KAAK;IACrER,+BAA+B,CAAC,IAAI,CAAC;IACrCG,OAAO,CAACI,KAAK,CAAC;IACdF,UAAU,CAACG,QAAQ,IAAI,CAAC,CAAC;EAC3B,CAAC;EAED,MAAMC,kBAAkB,GAAGA,CAAA,KAAM;IAC/BT,+BAA+B,CAAC,KAAK,CAAC;EACxC,CAAC;EAED,OAAO;IACLD,4BAA4B;IAC5BO,wBAAwB;IACxBG,kBAAkB;IAClBP,IAAI;IACJE;EACF,CAAC;AACH,CAAC;AAACM,OAAA,CAAAZ,yBAAA,GAAAA,yBAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["codegenNativeComponent"],"sourceRoot":"../../src","sources":["IOSTranslateSheetViewNativeComponent.ts"],"mappings":";;AAKA,OAAOA,sBAAsB,MAAM,yDAAyD;AAS5F,eAAeA,sBAAsB,
|
|
1
|
+
{"version":3,"names":["codegenNativeComponent"],"sourceRoot":"../../src","sources":["IOSTranslateSheetViewNativeComponent.ts"],"mappings":";;AAKA,OAAOA,sBAAsB,MAAM,yDAAyD;AAS5F,eAAeA,sBAAsB,CACnC,uBACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createContext, useContext } from "react";
|
|
4
|
+
import { StyleSheet } from "react-native";
|
|
5
|
+
import IOSTranslateSheet from "./IOSTranslateSheetViewNativeComponent";
|
|
6
|
+
import { useInternalTranslateSheet } from "./useTranslate";
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
const TranslateContext = /*#__PURE__*/createContext(null);
|
|
9
|
+
export const TranslateProvider = ({
|
|
10
|
+
children
|
|
11
|
+
}) => {
|
|
12
|
+
const {
|
|
13
|
+
presentIOSTranslateSheet,
|
|
14
|
+
isIOSTranslateSheetPresented,
|
|
15
|
+
text,
|
|
16
|
+
opacity,
|
|
17
|
+
hideTranslateSheet
|
|
18
|
+
} = useInternalTranslateSheet();
|
|
19
|
+
return /*#__PURE__*/_jsxs(TranslateContext.Provider, {
|
|
20
|
+
value: {
|
|
21
|
+
presentIOSTranslateSheet
|
|
22
|
+
},
|
|
23
|
+
children: [/*#__PURE__*/_jsx(IOSTranslateSheet, {
|
|
24
|
+
text: text,
|
|
25
|
+
isPresented: isIOSTranslateSheetPresented,
|
|
26
|
+
onHide: hideTranslateSheet,
|
|
27
|
+
opacity: opacity,
|
|
28
|
+
style: styles.translateView
|
|
29
|
+
}), children]
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
export const useIOSTranslateSheet = () => {
|
|
33
|
+
const context = useContext(TranslateContext);
|
|
34
|
+
if (!context) {
|
|
35
|
+
throw new Error("useTranslateSheet must be used within a TranslateProvider");
|
|
36
|
+
}
|
|
37
|
+
return context;
|
|
38
|
+
};
|
|
39
|
+
const styles = StyleSheet.create({
|
|
40
|
+
translateView: {
|
|
41
|
+
position: "absolute",
|
|
42
|
+
top: 0,
|
|
43
|
+
left: 0,
|
|
44
|
+
right: 0,
|
|
45
|
+
bottom: 0
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=TranslateContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createContext","useContext","StyleSheet","IOSTranslateSheet","useInternalTranslateSheet","jsx","_jsx","jsxs","_jsxs","TranslateContext","TranslateProvider","children","presentIOSTranslateSheet","isIOSTranslateSheetPresented","text","opacity","hideTranslateSheet","Provider","value","isPresented","onHide","style","styles","translateView","useIOSTranslateSheet","context","Error","create","position","top","left","right","bottom"],"sourceRoot":"../../src","sources":["TranslateContext.tsx"],"mappings":";;AAAA,SAAyBA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AACjE,SAASC,UAAU,QAAQ,cAAc;AACzC,OAAOC,iBAAiB,MAAM,wCAAwC;AACtE,SAASC,yBAAyB,QAAQ,gBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAM3D,MAAMC,gBAAgB,gBAAGT,aAAa,CAA8B,IAAI,CAAC;AAEzE,OAAO,MAAMU,iBAAiB,GAAGA,CAAC;EAAEC;AAAkC,CAAC,KAAK;EAC1E,MAAM;IACJC,wBAAwB;IACxBC,4BAA4B;IAC5BC,IAAI;IACJC,OAAO;IACPC;EACF,CAAC,GAAGZ,yBAAyB,CAAC,CAAC;EAE/B,oBACEI,KAAA,CAACC,gBAAgB,CAACQ,QAAQ;IAACC,KAAK,EAAE;MAAEN;IAAyB,CAAE;IAAAD,QAAA,gBAC7DL,IAAA,CAACH,iBAAiB;MAChBW,IAAI,EAAEA,IAAK;MACXK,WAAW,EAAEN,4BAA6B;MAC1CO,MAAM,EAAEJ,kBAAmB;MAC3BD,OAAO,EAAEA,OAAQ;MACjBM,KAAK,EAAEC,MAAM,CAACC;IAAc,CAC7B,CAAC,EACDZ,QAAQ;EAAA,CACgB,CAAC;AAEhC,CAAC;AAED,OAAO,MAAMa,oBAAoB,GAAGA,CAAA,KAAM;EACxC,MAAMC,OAAO,GAAGxB,UAAU,CAACQ,gBAAgB,CAAC;EAC5C,IAAI,CAACgB,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CACb,2DACF,CAAC;EACH;EACA,OAAOD,OAAO;AAChB,CAAC;AAED,MAAMH,MAAM,GAAGpB,UAAU,CAACyB,MAAM,CAAC;EAC/BJ,aAAa,EAAE;IACbK,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
export { default as IOSTranslateSheet } from "./IOSTranslateSheetViewNativeComponent
|
|
4
|
-
export * from "./IOSTranslateSheetViewNativeComponent
|
|
5
|
-
export * from "./
|
|
3
|
+
export { default as IOSTranslateSheet } from "./IOSTranslateSheetViewNativeComponent";
|
|
4
|
+
export * from "./IOSTranslateSheetViewNativeComponent";
|
|
5
|
+
export * from "./TranslateContext";
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["default","IOSTranslateSheet"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,OAAO,IAAIC,iBAAiB,QAAQ,
|
|
1
|
+
{"version":3,"names":["default","IOSTranslateSheet"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,OAAO,IAAIC,iBAAiB,QAAQ,wCAAwC;AACrF,cAAc,wCAAwC;AACtD,cAAc,oBAAoB","ignoreList":[]}
|
|
@@ -1,37 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { useState } from "react";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
-
export const useTranslate = () => {
|
|
8
|
-
const [isPresented, setIsPresented] = useState(false);
|
|
4
|
+
export const useInternalTranslateSheet = () => {
|
|
5
|
+
const [isIOSTranslateSheetPresented, setIsIOSTranslateSheetPresented] = useState(false);
|
|
9
6
|
const [text, setText] = useState("");
|
|
10
|
-
const
|
|
11
|
-
|
|
7
|
+
const [opacity, setOpacity] = useState(0);
|
|
8
|
+
const presentIOSTranslateSheet = (_text, _opacity) => {
|
|
9
|
+
setIsIOSTranslateSheetPresented(true);
|
|
12
10
|
setText(_text);
|
|
11
|
+
setOpacity(_opacity ?? 0);
|
|
13
12
|
};
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
text: text,
|
|
17
|
-
isPresented: isPresented,
|
|
18
|
-
onHide: () => setIsPresented(false),
|
|
19
|
-
style: styles.translateView
|
|
20
|
-
});
|
|
13
|
+
const hideTranslateSheet = () => {
|
|
14
|
+
setIsIOSTranslateSheetPresented(false);
|
|
21
15
|
};
|
|
22
16
|
return {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
17
|
+
isIOSTranslateSheetPresented,
|
|
18
|
+
presentIOSTranslateSheet,
|
|
19
|
+
hideTranslateSheet,
|
|
20
|
+
text,
|
|
21
|
+
opacity
|
|
26
22
|
};
|
|
27
23
|
};
|
|
28
|
-
const styles = StyleSheet.create({
|
|
29
|
-
translateView: {
|
|
30
|
-
position: "absolute",
|
|
31
|
-
top: 0,
|
|
32
|
-
left: 0,
|
|
33
|
-
right: 0,
|
|
34
|
-
bottom: 0
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
24
|
//# sourceMappingURL=useTranslate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","
|
|
1
|
+
{"version":3,"names":["useState","useInternalTranslateSheet","isIOSTranslateSheetPresented","setIsIOSTranslateSheetPresented","text","setText","opacity","setOpacity","presentIOSTranslateSheet","_text","_opacity","hideTranslateSheet"],"sourceRoot":"../../src","sources":["useTranslate.tsx"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,OAAO;AAEhC,OAAO,MAAMC,yBAAyB,GAAGA,CAAA,KAAM;EAC7C,MAAM,CAACC,4BAA4B,EAAEC,+BAA+B,CAAC,GACnEH,QAAQ,CAAC,KAAK,CAAC;EACjB,MAAM,CAACI,IAAI,EAAEC,OAAO,CAAC,GAAGL,QAAQ,CAAC,EAAE,CAAC;EACpC,MAAM,CAACM,OAAO,EAAEC,UAAU,CAAC,GAAGP,QAAQ,CAAC,CAAC,CAAC;EAEzC,MAAMQ,wBAAwB,GAAGA,CAACC,KAAa,EAAEC,QAAiB,KAAK;IACrEP,+BAA+B,CAAC,IAAI,CAAC;IACrCE,OAAO,CAACI,KAAK,CAAC;IACdF,UAAU,CAACG,QAAQ,IAAI,CAAC,CAAC;EAC3B,CAAC;EAED,MAAMC,kBAAkB,GAAGA,CAAA,KAAM;IAC/BR,+BAA+B,CAAC,KAAK,CAAC;EACxC,CAAC;EAED,OAAO;IACLD,4BAA4B;IAC5BM,wBAAwB;IACxBG,kBAAkB;IAClBP,IAAI;IACJE;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type { ViewProps } from "react-native";
|
|
1
|
+
import type { HostComponent, ViewProps } from "react-native";
|
|
2
2
|
import type { DirectEventHandler, Float } from "react-native/Libraries/Types/CodegenTypes";
|
|
3
|
-
interface
|
|
3
|
+
export interface IOSTranslateSheetProps extends ViewProps {
|
|
4
4
|
text: string;
|
|
5
5
|
isPresented: boolean;
|
|
6
6
|
onHide: DirectEventHandler<null>;
|
|
7
7
|
opacity?: Float;
|
|
8
8
|
}
|
|
9
|
-
declare const _default:
|
|
9
|
+
declare const _default: HostComponent<IOSTranslateSheetProps>;
|
|
10
10
|
export default _default;
|
|
11
11
|
//# sourceMappingURL=IOSTranslateSheetViewNativeComponent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IOSTranslateSheetViewNativeComponent.d.ts","sourceRoot":"","sources":["../../src/IOSTranslateSheetViewNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EACV,kBAAkB,EAClB,KAAK,EACN,MAAM,2CAA2C,CAAC;AAGnD,MAAM,WAAW,sBAAuB,SAAQ,SAAS;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB;wBAII,aAAa,CAAC,sBAAsB,CAAC;AAF1C,wBAE2C"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
type TranslateContextType = {
|
|
3
|
+
presentIOSTranslateSheet: (text: string, opacity?: number) => void;
|
|
4
|
+
};
|
|
5
|
+
export declare const TranslateProvider: ({ children }: {
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare const useIOSTranslateSheet: () => TranslateContextType;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=TranslateContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TranslateContext.d.ts","sourceRoot":"","sources":["../../src/TranslateContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAA6B,MAAM,OAAO,CAAC;AAKlE,KAAK,oBAAoB,GAAG;IAC1B,wBAAwB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACpE,CAAC;AAIF,eAAO,MAAM,iBAAiB,iBAAkB;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,4CAqBtE,CAAC;AAEF,eAAO,MAAM,oBAAoB,4BAQhC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AACtF,cAAc,wCAAwC,CAAC;AACvD,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const useInternalTranslateSheet: () => {
|
|
2
|
+
isIOSTranslateSheetPresented: boolean;
|
|
3
|
+
presentIOSTranslateSheet: (_text: string, _opacity?: number) => void;
|
|
4
|
+
hideTranslateSheet: () => void;
|
|
5
|
+
text: string;
|
|
6
|
+
opacity: number;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=useTranslate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTranslate.d.ts","sourceRoot":"","sources":["../../src/useTranslate.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB;;sCAMK,MAAM,aAAa,MAAM;;;;CAiBnE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,22 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-ios-translate-sheet",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "SwiftUI Translate Sheet on React Native",
|
|
5
5
|
"source": "./src/index.tsx",
|
|
6
|
-
"main": "
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
|
|
10
|
-
"import": {
|
|
11
|
-
"types": "./lib/typescript/module/src/index.d.ts",
|
|
12
|
-
"default": "./lib/module/index.js"
|
|
13
|
-
},
|
|
14
|
-
"require": {
|
|
15
|
-
"types": "./lib/typescript/commonjs/src/index.d.ts",
|
|
16
|
-
"default": "./lib/commonjs/index.js"
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
},
|
|
6
|
+
"main": "lib/commonjs/index.js",
|
|
7
|
+
"react-native": "src/index.tsx",
|
|
8
|
+
"module": "lib/module/index.js",
|
|
9
|
+
"types": "lib/typescript/index.d.ts",
|
|
20
10
|
"files": [
|
|
21
11
|
"src",
|
|
22
12
|
"lib",
|
|
@@ -70,8 +60,10 @@
|
|
|
70
60
|
"devDependencies": {
|
|
71
61
|
"@biomejs/biome": "^1.9.4",
|
|
72
62
|
"@commitlint/config-conventional": "^17.0.2",
|
|
73
|
-
"@react-native-community/cli": "15.
|
|
63
|
+
"@react-native-community/cli": "15.1.3",
|
|
74
64
|
"@release-it/conventional-changelog": "^9.0.2",
|
|
65
|
+
"@semantic-release/changelog": "^6.0.3",
|
|
66
|
+
"@semantic-release/git": "^10.0.1",
|
|
75
67
|
"@types/jest": "^29.5.5",
|
|
76
68
|
"@types/react": "^18.2.44",
|
|
77
69
|
"commitlint": "^17.0.2",
|
|
@@ -82,6 +74,7 @@
|
|
|
82
74
|
"react-native": "0.78.0",
|
|
83
75
|
"react-native-builder-bob": "^0.37.0",
|
|
84
76
|
"release-it": "^17.10.0",
|
|
77
|
+
"semantic-release": "^24.2.3",
|
|
85
78
|
"turbo": "^1.10.7",
|
|
86
79
|
"typescript": "^5.2.2"
|
|
87
80
|
},
|
|
@@ -129,26 +122,9 @@
|
|
|
129
122
|
"source": "src",
|
|
130
123
|
"output": "lib",
|
|
131
124
|
"targets": [
|
|
132
|
-
"
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
{
|
|
136
|
-
"esm": true
|
|
137
|
-
}
|
|
138
|
-
],
|
|
139
|
-
[
|
|
140
|
-
"module",
|
|
141
|
-
{
|
|
142
|
-
"esm": true
|
|
143
|
-
}
|
|
144
|
-
],
|
|
145
|
-
[
|
|
146
|
-
"typescript",
|
|
147
|
-
{
|
|
148
|
-
"project": "tsconfig.build.json",
|
|
149
|
-
"esm": true
|
|
150
|
-
}
|
|
151
|
-
]
|
|
125
|
+
"commonjs",
|
|
126
|
+
"module",
|
|
127
|
+
"typescript"
|
|
152
128
|
]
|
|
153
129
|
},
|
|
154
130
|
"codegenConfig": {
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import type { ViewProps } from "react-native";
|
|
1
|
+
import type { HostComponent, ViewProps } from "react-native";
|
|
2
2
|
import type {
|
|
3
3
|
DirectEventHandler,
|
|
4
4
|
Float,
|
|
5
5
|
} from "react-native/Libraries/Types/CodegenTypes";
|
|
6
6
|
import codegenNativeComponent from "react-native/Libraries/Utilities/codegenNativeComponent";
|
|
7
7
|
|
|
8
|
-
interface
|
|
8
|
+
export interface IOSTranslateSheetProps extends ViewProps {
|
|
9
9
|
text: string;
|
|
10
10
|
isPresented: boolean;
|
|
11
11
|
onHide: DirectEventHandler<null>;
|
|
12
12
|
opacity?: Float;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
export default codegenNativeComponent<
|
|
15
|
+
export default codegenNativeComponent<IOSTranslateSheetProps>(
|
|
16
|
+
"IOSTranslateSheetView",
|
|
17
|
+
) as HostComponent<IOSTranslateSheetProps>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { type ReactNode, createContext, useContext } from "react";
|
|
2
|
+
import { StyleSheet } from "react-native";
|
|
3
|
+
import IOSTranslateSheet from "./IOSTranslateSheetViewNativeComponent";
|
|
4
|
+
import { useInternalTranslateSheet } from "./useTranslate";
|
|
5
|
+
|
|
6
|
+
type TranslateContextType = {
|
|
7
|
+
presentIOSTranslateSheet: (text: string, opacity?: number) => void;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
const TranslateContext = createContext<TranslateContextType | null>(null);
|
|
11
|
+
|
|
12
|
+
export const TranslateProvider = ({ children }: { children: ReactNode }) => {
|
|
13
|
+
const {
|
|
14
|
+
presentIOSTranslateSheet,
|
|
15
|
+
isIOSTranslateSheetPresented,
|
|
16
|
+
text,
|
|
17
|
+
opacity,
|
|
18
|
+
hideTranslateSheet,
|
|
19
|
+
} = useInternalTranslateSheet();
|
|
20
|
+
|
|
21
|
+
return (
|
|
22
|
+
<TranslateContext.Provider value={{ presentIOSTranslateSheet }}>
|
|
23
|
+
<IOSTranslateSheet
|
|
24
|
+
text={text}
|
|
25
|
+
isPresented={isIOSTranslateSheetPresented}
|
|
26
|
+
onHide={hideTranslateSheet}
|
|
27
|
+
opacity={opacity}
|
|
28
|
+
style={styles.translateView}
|
|
29
|
+
/>
|
|
30
|
+
{children}
|
|
31
|
+
</TranslateContext.Provider>
|
|
32
|
+
);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export const useIOSTranslateSheet = () => {
|
|
36
|
+
const context = useContext(TranslateContext);
|
|
37
|
+
if (!context) {
|
|
38
|
+
throw new Error(
|
|
39
|
+
"useTranslateSheet must be used within a TranslateProvider",
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
return context;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const styles = StyleSheet.create({
|
|
46
|
+
translateView: {
|
|
47
|
+
position: "absolute",
|
|
48
|
+
top: 0,
|
|
49
|
+
left: 0,
|
|
50
|
+
right: 0,
|
|
51
|
+
bottom: 0,
|
|
52
|
+
},
|
|
53
|
+
});
|
package/src/index.tsx
CHANGED