react-native-ios-translate-sheet 1.0.0 → 1.1.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.
- package/ios/IOSTranslateSheet-Bridging-Header.h +4 -0
- package/ios/IOSTranslateSheet.swift +16 -16
- package/ios/IOSTranslateSheetProvider.swift +60 -57
- package/ios/IOSTranslateSheetView.h +2 -9
- package/ios/IOSTranslateSheetView.mm +31 -38
- package/ios/IOSTranslateSheetViewManager.mm +22 -4
- 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 +4 -4
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/useTranslate.js +8 -25
- 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 +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/useTranslate.js +6 -22
- package/lib/module/useTranslate.js.map +1 -1
- package/lib/typescript/IOSTranslateSheetViewNativeComponent.d.ts +5 -5
- package/lib/typescript/IOSTranslateSheetViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/TranslateContext.d.ts +10 -0
- package/lib/typescript/TranslateContext.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/useTranslate.d.ts +4 -2
- package/lib/typescript/useTranslate.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/IOSTranslateSheetViewNativeComponent.ts +7 -4
- package/src/TranslateContext.tsx +53 -0
- package/src/index.tsx +1 -1
- package/src/useTranslate.tsx +8 -25
|
@@ -2,25 +2,25 @@ import SwiftUI
|
|
|
2
2
|
import Translation
|
|
3
3
|
|
|
4
4
|
class Props: ObservableObject {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
@Published var text: String = ""
|
|
6
|
+
@Published var isPresented: Bool = false
|
|
7
|
+
@Published var onHide: () -> Void = {}
|
|
8
|
+
@Published var opacity: Double = 0.0
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
struct IOSTranslateSheet: View {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
12
|
+
@ObservedObject var props: Props
|
|
13
|
+
|
|
14
|
+
var body: some View {
|
|
15
|
+
if #available(iOS 17.4, *) {
|
|
16
|
+
Color.clear
|
|
17
|
+
.frame(maxWidth: .infinity, maxHeight: .infinity)
|
|
18
|
+
.translationPresentation(isPresented: $props.isPresented, text: props.text)
|
|
19
|
+
.onChange(of: props.isPresented) { oldValue, newValue in
|
|
20
|
+
if oldValue == true && newValue == false {
|
|
21
|
+
props.onHide()
|
|
22
|
+
}
|
|
22
23
|
}
|
|
23
|
-
|
|
24
|
+
}
|
|
24
25
|
}
|
|
25
|
-
}
|
|
26
26
|
}
|
|
@@ -2,71 +2,74 @@ import UIKit
|
|
|
2
2
|
import React
|
|
3
3
|
import SwiftUI
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
extension UIView {
|
|
6
|
+
func pinEdges(to view: UIView) {
|
|
7
|
+
translatesAutoresizingMaskIntoConstraints = false
|
|
8
|
+
NSLayoutConstraint.activate([
|
|
9
|
+
leadingAnchor.constraint(equalTo: view.leadingAnchor),
|
|
10
|
+
trailingAnchor.constraint(equalTo: view.trailingAnchor),
|
|
11
|
+
topAnchor.constraint(equalTo: view.topAnchor),
|
|
12
|
+
bottomAnchor.constraint(equalTo: view.bottomAnchor)
|
|
13
|
+
])
|
|
12
14
|
}
|
|
13
|
-
|
|
15
|
+
}
|
|
14
16
|
|
|
15
|
-
|
|
16
|
-
didSet {
|
|
17
|
-
props.isPresented = isPresented
|
|
18
|
-
hostingController?.view.isHidden = !isPresented
|
|
19
|
-
}
|
|
20
|
-
}
|
|
17
|
+
public typealias RCTBubblingEventBlock = @convention(block) (_ body: [AnyHashable: Any]?) -> Void
|
|
21
18
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
@objc public class IOSTranslateSheetProvider: UIView {
|
|
20
|
+
private var props = Props()
|
|
21
|
+
private var hostingController: UIHostingController<IOSTranslateSheet>?
|
|
22
|
+
|
|
23
|
+
@objc public var text: String = "" {
|
|
24
|
+
didSet {
|
|
25
|
+
props.text = text
|
|
26
|
+
}
|
|
25
27
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
setupView()
|
|
28
|
+
|
|
29
|
+
@objc public var isPresented: Bool = false {
|
|
30
|
+
didSet {
|
|
31
|
+
props.isPresented = isPresented
|
|
32
|
+
hostingController?.view.isHidden = !isPresented
|
|
33
|
+
}
|
|
33
34
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
|
|
36
|
+
@objc public var opacity: Double = 0.0 {
|
|
37
|
+
didSet {
|
|
38
|
+
props.opacity = opacity
|
|
39
|
+
}
|
|
38
40
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
|
|
42
|
+
@objc public var onHide: RCTBubblingEventBlock? {
|
|
43
|
+
didSet {
|
|
44
|
+
props.onHide = { [weak self] in
|
|
45
|
+
self?.onHide?([:])
|
|
46
|
+
}
|
|
47
|
+
}
|
|
43
48
|
}
|
|
44
49
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
)
|
|
50
|
+
public override func layoutSubviews() {
|
|
51
|
+
super.layoutSubviews()
|
|
52
|
+
setupView()
|
|
53
|
+
}
|
|
50
54
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
private func setupView() {
|
|
56
|
+
if self.hostingController != nil {
|
|
57
|
+
return
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
self.hostingController = UIHostingController(
|
|
61
|
+
rootView: IOSTranslateSheet(
|
|
62
|
+
props: props
|
|
63
|
+
)
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
if let hostingController = self.hostingController {
|
|
67
|
+
hostingController.view.isHidden = !isPresented
|
|
68
|
+
hostingController.view.backgroundColor = UIColor(white: 0.0, alpha: opacity)
|
|
69
|
+
|
|
70
|
+
addSubview(hostingController.view)
|
|
71
|
+
hostingController.view.pinEdges(to: self)
|
|
72
|
+
reactAddController(toClosestParent: hostingController)
|
|
73
|
+
}
|
|
59
74
|
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
extension UIView {
|
|
64
|
-
func pinEdges(to other: UIView) {
|
|
65
|
-
NSLayoutConstraint.activate([
|
|
66
|
-
leadingAnchor.constraint(equalTo: other.leadingAnchor),
|
|
67
|
-
trailingAnchor.constraint(equalTo: other.trailingAnchor),
|
|
68
|
-
topAnchor.constraint(equalTo: other.topAnchor),
|
|
69
|
-
bottomAnchor.constraint(equalTo: other.bottomAnchor)
|
|
70
|
-
])
|
|
71
|
-
}
|
|
72
75
|
}
|
|
@@ -1,18 +1,11 @@
|
|
|
1
|
-
#ifdef
|
|
2
|
-
|
|
1
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
3
2
|
#import <React/RCTViewComponentView.h>
|
|
4
3
|
#import <UIKit/UIKit.h>
|
|
5
4
|
|
|
6
|
-
#ifndef IOSTranslateSheetViewNativeComponent_h
|
|
7
|
-
#define IOSTranslateSheetViewNativeComponent_h
|
|
8
|
-
|
|
9
5
|
NS_ASSUME_NONNULL_BEGIN
|
|
10
6
|
|
|
11
7
|
@interface IOSTranslateSheetView : RCTViewComponentView
|
|
12
8
|
@end
|
|
13
9
|
|
|
14
10
|
NS_ASSUME_NONNULL_END
|
|
15
|
-
|
|
16
|
-
#endif /* IOSTranslateSheetViewNativeComponent_h */
|
|
17
|
-
|
|
18
|
-
#endif /* __cplusplus */
|
|
11
|
+
#endif
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
1
2
|
#import "IOSTranslateSheetView.h"
|
|
2
|
-
|
|
3
|
-
#import
|
|
4
|
-
#import "generated/RNIOSTranslateSheetViewSpec/EventEmitters.h"
|
|
5
|
-
#import "generated/RNIOSTranslateSheetViewSpec/Props.h"
|
|
6
|
-
#import "generated/RNIOSTranslateSheetViewSpec/RCTComponentViewHelpers.h"
|
|
7
|
-
|
|
8
|
-
#import "RCTFabricComponentsPlugins.h"
|
|
3
|
+
#import <React/RCTConvert.h>
|
|
4
|
+
#import <React/RCTFabricComponentsPlugins.h>
|
|
9
5
|
|
|
10
6
|
#if __has_include("IOSTranslateSheet/IOSTranslateSheet-Swift.h")
|
|
11
7
|
#import "IOSTranslateSheet/IOSTranslateSheet-Swift.h"
|
|
@@ -13,14 +9,18 @@
|
|
|
13
9
|
#import "IOSTranslateSheet-Swift.h"
|
|
14
10
|
#endif
|
|
15
11
|
|
|
12
|
+
#import "generated/RNIOSTranslateSheetViewSpec/ComponentDescriptors.h"
|
|
13
|
+
#import "generated/RNIOSTranslateSheetViewSpec/EventEmitters.h"
|
|
14
|
+
#import "generated/RNIOSTranslateSheetViewSpec/Props.h"
|
|
15
|
+
#import "generated/RNIOSTranslateSheetViewSpec/RCTComponentViewHelpers.h"
|
|
16
|
+
|
|
16
17
|
using namespace facebook::react;
|
|
17
18
|
|
|
18
19
|
@interface IOSTranslateSheetView () <RCTIOSTranslateSheetViewViewProtocol>
|
|
19
|
-
|
|
20
20
|
@end
|
|
21
21
|
|
|
22
22
|
@implementation IOSTranslateSheetView {
|
|
23
|
-
IOSTranslateSheetProvider *
|
|
23
|
+
IOSTranslateSheetProvider *_view;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
+ (ComponentDescriptorProvider)componentDescriptorProvider
|
|
@@ -30,54 +30,47 @@ using namespace facebook::react;
|
|
|
30
30
|
|
|
31
31
|
- (instancetype)initWithFrame:(CGRect)frame
|
|
32
32
|
{
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
if (strongSelf) {
|
|
43
|
-
// Emit the onHide event
|
|
44
|
-
if (strongSelf->_eventEmitter) {
|
|
33
|
+
if (self = [super initWithFrame:frame]) {
|
|
34
|
+
static const auto defaultProps = std::make_shared<const IOSTranslateSheetViewProps>();
|
|
35
|
+
_props = defaultProps;
|
|
36
|
+
_view = [[IOSTranslateSheetProvider alloc] init];
|
|
37
|
+
|
|
38
|
+
__weak __typeof__(self) weakSelf = self;
|
|
39
|
+
_view.onHide = ^(NSDictionary *_) {
|
|
40
|
+
__typeof__(self) strongSelf = weakSelf;
|
|
41
|
+
if (strongSelf && strongSelf->_eventEmitter) {
|
|
45
42
|
std::dynamic_pointer_cast<const IOSTranslateSheetViewEventEmitter>(strongSelf->_eventEmitter)
|
|
46
43
|
->onHide({});
|
|
47
44
|
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
return self;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
self.contentView = _view;
|
|
48
|
+
}
|
|
49
|
+
return self;
|
|
55
50
|
}
|
|
56
51
|
|
|
57
52
|
- (void)updateProps:(Props::Shared const &)props oldProps:(Props::Shared const &)oldProps
|
|
58
53
|
{
|
|
59
|
-
const auto &oldViewProps = *std::static_pointer_cast<IOSTranslateSheetViewProps
|
|
60
|
-
const auto &newViewProps = *std::static_pointer_cast<IOSTranslateSheetViewProps
|
|
54
|
+
const auto &oldViewProps = *std::static_pointer_cast<const IOSTranslateSheetViewProps>(_props);
|
|
55
|
+
const auto &newViewProps = *std::static_pointer_cast<const IOSTranslateSheetViewProps>(props);
|
|
61
56
|
|
|
62
57
|
if (oldViewProps.text != newViewProps.text) {
|
|
63
|
-
|
|
64
|
-
[_view setText:text];
|
|
58
|
+
_view.text = [[NSString alloc] initWithUTF8String:newViewProps.text.c_str()];
|
|
65
59
|
}
|
|
66
|
-
|
|
67
60
|
if (oldViewProps.isPresented != newViewProps.isPresented) {
|
|
68
|
-
|
|
61
|
+
_view.isPresented = newViewProps.isPresented;
|
|
69
62
|
}
|
|
70
|
-
|
|
71
63
|
if (oldViewProps.opacity != newViewProps.opacity) {
|
|
72
|
-
|
|
64
|
+
_view.opacity = newViewProps.opacity;
|
|
73
65
|
}
|
|
74
66
|
|
|
75
67
|
[super updateProps:props oldProps:oldProps];
|
|
76
68
|
}
|
|
77
69
|
|
|
70
|
+
@end
|
|
71
|
+
|
|
78
72
|
Class<RCTComponentViewProtocol> IOSTranslateSheetViewCls(void)
|
|
79
73
|
{
|
|
80
74
|
return IOSTranslateSheetView.class;
|
|
81
75
|
}
|
|
82
|
-
|
|
83
|
-
@end
|
|
76
|
+
#endif
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
#import <React/RCTViewManager.h>
|
|
2
2
|
#import <React/RCTUIManager.h>
|
|
3
|
+
#import <React/RCTComponent.h>
|
|
3
4
|
#import "RCTBridge.h"
|
|
4
5
|
|
|
6
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
7
|
+
#import <React/RCTConvert.h>
|
|
8
|
+
#import <ReactCommon/RCTTurboModule.h>
|
|
9
|
+
#import "RCTFabricComponentsPlugins.h"
|
|
10
|
+
#endif
|
|
11
|
+
|
|
5
12
|
#if __has_include("IOSTranslateSheet/IOSTranslateSheet-Swift.h")
|
|
6
13
|
#import "IOSTranslateSheet/IOSTranslateSheet-Swift.h"
|
|
7
14
|
#else
|
|
@@ -15,11 +22,22 @@
|
|
|
15
22
|
|
|
16
23
|
RCT_EXPORT_MODULE(IOSTranslateSheetView)
|
|
17
24
|
|
|
18
|
-
- (
|
|
25
|
+
- (UIView *)view
|
|
19
26
|
{
|
|
20
|
-
|
|
27
|
+
IOSTranslateSheetProvider *view = [[IOSTranslateSheetProvider alloc] init];
|
|
28
|
+
return view;
|
|
21
29
|
}
|
|
22
30
|
|
|
23
|
-
RCT_EXPORT_VIEW_PROPERTY(
|
|
31
|
+
RCT_EXPORT_VIEW_PROPERTY(text, NSString)
|
|
32
|
+
RCT_EXPORT_VIEW_PROPERTY(isPresented, BOOL)
|
|
33
|
+
RCT_EXPORT_VIEW_PROPERTY(opacity, double)
|
|
34
|
+
RCT_EXPORT_VIEW_PROPERTY(onHide, RCTDirectEventBlock)
|
|
24
35
|
|
|
25
|
-
|
|
36
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
37
|
+
+ (BOOL)requiresMainQueueSetup
|
|
38
|
+
{
|
|
39
|
+
return YES;
|
|
40
|
+
}
|
|
41
|
+
#endif
|
|
42
|
+
|
|
43
|
+
@end
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","e","__esModule","default","_default","exports","codegenNativeComponent"],"sourceRoot":"../../src","sources":["IOSTranslateSheetViewNativeComponent.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","e","__esModule","default","_default","exports","codegenNativeComponent"],"sourceRoot":"../../src","sources":["IOSTranslateSheetViewNativeComponent.ts"],"mappings":";;;;;;AAMA,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
|
@@ -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,13 +3,9 @@
|
|
|
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
|
-
var _IOSTranslateSheetViewNativeComponent = _interopRequireDefault(require("./IOSTranslateSheetViewNativeComponent"));
|
|
10
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
-
const useIOSTranslateSheet = () => {
|
|
8
|
+
const useInternalTranslateSheet = () => {
|
|
13
9
|
const [isIOSTranslateSheetPresented, setIsIOSTranslateSheetPresented] = (0, _react.useState)(false);
|
|
14
10
|
const [text, setText] = (0, _react.useState)("");
|
|
15
11
|
const [opacity, setOpacity] = (0, _react.useState)(0);
|
|
@@ -18,29 +14,16 @@ const useIOSTranslateSheet = () => {
|
|
|
18
14
|
setText(_text);
|
|
19
15
|
setOpacity(_opacity ?? 0);
|
|
20
16
|
};
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
text: text,
|
|
24
|
-
isPresented: isIOSTranslateSheetPresented,
|
|
25
|
-
onHide: () => setIsIOSTranslateSheetPresented(false),
|
|
26
|
-
style: styles.translateView,
|
|
27
|
-
opacity: opacity
|
|
28
|
-
});
|
|
17
|
+
const hideTranslateSheet = () => {
|
|
18
|
+
setIsIOSTranslateSheetPresented(false);
|
|
29
19
|
};
|
|
30
20
|
return {
|
|
31
21
|
isIOSTranslateSheetPresented,
|
|
32
22
|
presentIOSTranslateSheet,
|
|
33
|
-
|
|
23
|
+
hideTranslateSheet,
|
|
24
|
+
text,
|
|
25
|
+
opacity
|
|
34
26
|
};
|
|
35
27
|
};
|
|
36
|
-
exports.
|
|
37
|
-
const styles = _reactNative.StyleSheet.create({
|
|
38
|
-
translateView: {
|
|
39
|
-
position: "absolute",
|
|
40
|
-
top: 0,
|
|
41
|
-
left: 0,
|
|
42
|
-
right: 0,
|
|
43
|
-
bottom: 0
|
|
44
|
-
}
|
|
45
|
-
});
|
|
28
|
+
exports.useInternalTranslateSheet = useInternalTranslateSheet;
|
|
46
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":";;
|
|
1
|
+
{"version":3,"names":["codegenNativeComponent"],"sourceRoot":"../../src","sources":["IOSTranslateSheetViewNativeComponent.ts"],"mappings":";;AAMA,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
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,wCAAwC;AACrF,cAAc,wCAAwC;AACtD,cAAc,
|
|
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,10 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { useState } from "react";
|
|
4
|
-
|
|
5
|
-
import IOSTranslateSheet from "./IOSTranslateSheetViewNativeComponent";
|
|
6
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
-
export const useIOSTranslateSheet = () => {
|
|
4
|
+
export const useInternalTranslateSheet = () => {
|
|
8
5
|
const [isIOSTranslateSheetPresented, setIsIOSTranslateSheetPresented] = useState(false);
|
|
9
6
|
const [text, setText] = useState("");
|
|
10
7
|
const [opacity, setOpacity] = useState(0);
|
|
@@ -13,28 +10,15 @@ export const useIOSTranslateSheet = () => {
|
|
|
13
10
|
setText(_text);
|
|
14
11
|
setOpacity(_opacity ?? 0);
|
|
15
12
|
};
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
text: text,
|
|
19
|
-
isPresented: isIOSTranslateSheetPresented,
|
|
20
|
-
onHide: () => setIsIOSTranslateSheetPresented(false),
|
|
21
|
-
style: styles.translateView,
|
|
22
|
-
opacity: opacity
|
|
23
|
-
});
|
|
13
|
+
const hideTranslateSheet = () => {
|
|
14
|
+
setIsIOSTranslateSheetPresented(false);
|
|
24
15
|
};
|
|
25
16
|
return {
|
|
26
17
|
isIOSTranslateSheetPresented,
|
|
27
18
|
presentIOSTranslateSheet,
|
|
28
|
-
|
|
19
|
+
hideTranslateSheet,
|
|
20
|
+
text,
|
|
21
|
+
opacity
|
|
29
22
|
};
|
|
30
23
|
};
|
|
31
|
-
const styles = StyleSheet.create({
|
|
32
|
-
translateView: {
|
|
33
|
-
position: "absolute",
|
|
34
|
-
top: 0,
|
|
35
|
-
left: 0,
|
|
36
|
-
right: 0,
|
|
37
|
-
bottom: 0
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
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
1
|
import type { ViewProps } from "react-native";
|
|
2
|
-
import type { DirectEventHandler, Float } from "react-native/Libraries/Types/CodegenTypes";
|
|
3
|
-
interface
|
|
2
|
+
import type { DirectEventHandler, Float, WithDefault } from "react-native/Libraries/Types/CodegenTypes";
|
|
3
|
+
export interface IOSTranslateSheetProps extends ViewProps {
|
|
4
4
|
text: string;
|
|
5
5
|
isPresented: boolean;
|
|
6
|
-
onHide
|
|
7
|
-
opacity?: Float
|
|
6
|
+
onHide?: DirectEventHandler<null>;
|
|
7
|
+
opacity?: WithDefault<Float, 0.0>;
|
|
8
8
|
}
|
|
9
|
-
declare const _default: import("react-native/Libraries/Utilities/codegenNativeComponent").NativeComponentType<
|
|
9
|
+
declare const _default: import("react-native/Libraries/Utilities/codegenNativeComponent").NativeComponentType<IOSTranslateSheetProps>;
|
|
10
10
|
export default _default;
|
|
11
11
|
//# sourceMappingURL=IOSTranslateSheetViewNativeComponent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IOSTranslateSheetViewNativeComponent.d.ts","sourceRoot":"","sources":["../../src/IOSTranslateSheetViewNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EACV,kBAAkB,EAClB,KAAK,
|
|
1
|
+
{"version":3,"file":"IOSTranslateSheetViewNativeComponent.d.ts","sourceRoot":"","sources":["../../src/IOSTranslateSheetViewNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EACV,kBAAkB,EAClB,KAAK,EACL,WAAW,EACZ,MAAM,2CAA2C,CAAC;AAGnD,MAAM,WAAW,sBAAuB,SAAQ,SAAS;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;CACnC;;AAED,wBAEE"}
|
|
@@ -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"}
|
|
@@ -1 +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,
|
|
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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
export declare const
|
|
1
|
+
export declare const useInternalTranslateSheet: () => {
|
|
2
2
|
isIOSTranslateSheetPresented: boolean;
|
|
3
3
|
presentIOSTranslateSheet: (_text: string, _opacity?: number) => void;
|
|
4
|
-
|
|
4
|
+
hideTranslateSheet: () => void;
|
|
5
|
+
text: string;
|
|
6
|
+
opacity: number;
|
|
5
7
|
};
|
|
6
8
|
//# sourceMappingURL=useTranslate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTranslate.d.ts","sourceRoot":"","sources":["../../src/useTranslate.tsx"],"names":[],"mappings":"
|
|
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
|
@@ -2,14 +2,17 @@ import type { ViewProps } from "react-native";
|
|
|
2
2
|
import type {
|
|
3
3
|
DirectEventHandler,
|
|
4
4
|
Float,
|
|
5
|
+
WithDefault,
|
|
5
6
|
} from "react-native/Libraries/Types/CodegenTypes";
|
|
6
7
|
import codegenNativeComponent from "react-native/Libraries/Utilities/codegenNativeComponent";
|
|
7
8
|
|
|
8
|
-
interface
|
|
9
|
+
export interface IOSTranslateSheetProps extends ViewProps {
|
|
9
10
|
text: string;
|
|
10
11
|
isPresented: boolean;
|
|
11
|
-
onHide
|
|
12
|
-
opacity?: Float
|
|
12
|
+
onHide?: DirectEventHandler<null>;
|
|
13
|
+
opacity?: WithDefault<Float, 0.0>;
|
|
13
14
|
}
|
|
14
15
|
|
|
15
|
-
export default codegenNativeComponent<
|
|
16
|
+
export default codegenNativeComponent<IOSTranslateSheetProps>(
|
|
17
|
+
"IOSTranslateSheetView",
|
|
18
|
+
);
|
|
@@ -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
package/src/useTranslate.tsx
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { useState } from "react";
|
|
2
|
-
import { StyleSheet } from "react-native";
|
|
3
|
-
import IOSTranslateSheet from "./IOSTranslateSheetViewNativeComponent";
|
|
4
2
|
|
|
5
|
-
export const
|
|
6
|
-
const [isIOSTranslateSheetPresented, setIsIOSTranslateSheetPresented] =
|
|
3
|
+
export const useInternalTranslateSheet = () => {
|
|
4
|
+
const [isIOSTranslateSheetPresented, setIsIOSTranslateSheetPresented] =
|
|
5
|
+
useState(false);
|
|
7
6
|
const [text, setText] = useState("");
|
|
8
7
|
const [opacity, setOpacity] = useState(0);
|
|
9
8
|
|
|
@@ -13,31 +12,15 @@ export const useIOSTranslateSheet = () => {
|
|
|
13
12
|
setOpacity(_opacity ?? 0);
|
|
14
13
|
};
|
|
15
14
|
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
<IOSTranslateSheet
|
|
19
|
-
text={text}
|
|
20
|
-
isPresented={isIOSTranslateSheetPresented}
|
|
21
|
-
onHide={() => setIsIOSTranslateSheetPresented(false)}
|
|
22
|
-
style={styles.translateView}
|
|
23
|
-
opacity={opacity}
|
|
24
|
-
/>
|
|
25
|
-
);
|
|
15
|
+
const hideTranslateSheet = () => {
|
|
16
|
+
setIsIOSTranslateSheetPresented(false);
|
|
26
17
|
};
|
|
27
18
|
|
|
28
19
|
return {
|
|
29
20
|
isIOSTranslateSheetPresented,
|
|
30
21
|
presentIOSTranslateSheet,
|
|
31
|
-
|
|
22
|
+
hideTranslateSheet,
|
|
23
|
+
text,
|
|
24
|
+
opacity,
|
|
32
25
|
};
|
|
33
26
|
};
|
|
34
|
-
|
|
35
|
-
const styles = StyleSheet.create({
|
|
36
|
-
translateView: {
|
|
37
|
-
position: "absolute",
|
|
38
|
-
top: 0,
|
|
39
|
-
left: 0,
|
|
40
|
-
right: 0,
|
|
41
|
-
bottom: 0,
|
|
42
|
-
},
|
|
43
|
-
});
|