@lodev09/react-native-true-sheet 0.7.0 → 0.8.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/README.md +34 -18
- package/android/src/main/java/com/lodev09/truesheet/{core/TrueSheetBehavior.kt → TrueSheetBehavior.kt} +69 -39
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetDialog.kt +84 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetView.kt +82 -61
- package/android/src/main/java/com/lodev09/truesheet/core/Events.kt +1 -0
- package/android/src/main/java/com/lodev09/truesheet/core/KeyboardManager.kt +53 -0
- package/android/src/main/java/com/lodev09/truesheet/core/RootViewGroup.kt +1 -1
- package/android/src/main/java/com/lodev09/truesheet/core/Utils.kt +5 -37
- package/ios/Extensions/UIView+pinTo.swift +54 -10
- package/ios/TrueSheetView.swift +56 -22
- package/ios/TrueSheetViewController.swift +36 -0
- package/lib/commonjs/TrueSheet.js +4 -1
- package/lib/commonjs/TrueSheet.js.map +1 -1
- package/lib/commonjs/TrueSheetGrabber.js +56 -0
- package/lib/commonjs/TrueSheetGrabber.js.map +1 -0
- package/lib/commonjs/index.js +11 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/TrueSheet.js +4 -1
- package/lib/module/TrueSheet.js.map +1 -1
- package/lib/module/TrueSheetGrabber.js +48 -0
- package/lib/module/TrueSheetGrabber.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/TrueSheet.d.ts.map +1 -1
- package/lib/typescript/src/TrueSheetGrabber.d.ts +31 -0
- package/lib/typescript/src/TrueSheetGrabber.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +1 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/TrueSheet.tsx +2 -0
- package/src/TrueSheetGrabber.tsx +74 -0
- package/src/index.ts +1 -0
|
@@ -1,46 +1,14 @@
|
|
|
1
1
|
package com.lodev09.truesheet.core
|
|
2
2
|
|
|
3
|
-
import android.
|
|
4
|
-
import android.content.Context
|
|
5
|
-
import android.graphics.Point
|
|
6
|
-
import android.view.WindowManager
|
|
7
|
-
import com.facebook.infer.annotation.Assertions
|
|
3
|
+
import android.view.View
|
|
8
4
|
import com.facebook.react.bridge.Promise
|
|
5
|
+
import com.facebook.react.bridge.ReactContext
|
|
9
6
|
import com.facebook.react.uimanager.PixelUtil
|
|
10
7
|
|
|
11
8
|
object Utils {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
val maxPoint = Point()
|
|
16
|
-
val sizePoint = Point()
|
|
17
|
-
|
|
18
|
-
val wm = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager
|
|
19
|
-
val display = Assertions.assertNotNull(wm).defaultDisplay
|
|
20
|
-
// getCurrentSizeRange will return the min and max width and height that the window can be
|
|
21
|
-
display.getCurrentSizeRange(minPoint, maxPoint)
|
|
22
|
-
// getSize will return the dimensions of the screen in its current orientation
|
|
23
|
-
display.getSize(sizePoint)
|
|
24
|
-
val attrs = intArrayOf(android.R.attr.windowFullscreen)
|
|
25
|
-
val theme = context.theme
|
|
26
|
-
val ta = theme.obtainStyledAttributes(attrs)
|
|
27
|
-
val windowFullscreen = ta.getBoolean(0, false)
|
|
28
|
-
|
|
29
|
-
// We need to add the status bar height to the height if we have a fullscreen window,
|
|
30
|
-
// because Display.getCurrentSizeRange doesn't include it.
|
|
31
|
-
val resources = context.resources
|
|
32
|
-
val statusBarId = resources.getIdentifier("status_bar_height", "dimen", "android")
|
|
33
|
-
var statusBarHeight = 0
|
|
34
|
-
if (windowFullscreen && statusBarId > 0) {
|
|
35
|
-
statusBarHeight = resources.getDimension(statusBarId).toInt()
|
|
36
|
-
}
|
|
37
|
-
return if (sizePoint.x < sizePoint.y) {
|
|
38
|
-
// If we are vertical the width value comes from min width and height comes from max height
|
|
39
|
-
Point(minPoint.x, maxPoint.y + statusBarHeight)
|
|
40
|
-
} else {
|
|
41
|
-
// If we are horizontal the width value comes from max width and height comes from min height
|
|
42
|
-
Point(maxPoint.x, minPoint.y + statusBarHeight)
|
|
43
|
-
}
|
|
9
|
+
fun activityView(reactContext: ReactContext): View? {
|
|
10
|
+
val activity = reactContext.currentActivity ?: return null
|
|
11
|
+
return activity.findViewById(android.R.id.content)
|
|
44
12
|
}
|
|
45
13
|
|
|
46
14
|
fun toDIP(value: Int): Float = PixelUtil.toDIPFromPixel(value.toFloat())
|
|
@@ -6,20 +6,64 @@
|
|
|
6
6
|
// LICENSE file in the root directory of this source tree.
|
|
7
7
|
//
|
|
8
8
|
|
|
9
|
+
// MARK: - Constraints
|
|
10
|
+
|
|
11
|
+
struct Constraints {
|
|
12
|
+
var top: NSLayoutConstraint?
|
|
13
|
+
var bottom: NSLayoutConstraint?
|
|
14
|
+
var left: NSLayoutConstraint?
|
|
15
|
+
var right: NSLayoutConstraint?
|
|
16
|
+
var height: NSLayoutConstraint?
|
|
17
|
+
}
|
|
18
|
+
|
|
9
19
|
extension UIView {
|
|
10
|
-
|
|
11
|
-
|
|
20
|
+
/// Pin a view to the given view.
|
|
21
|
+
/// Optionally accepts a completion handler for the resulting constraints
|
|
22
|
+
func pinTo(
|
|
23
|
+
view: UIView,
|
|
24
|
+
from edges: UIRectEdge = .all,
|
|
25
|
+
with height: CGFloat? = nil,
|
|
26
|
+
constraints: ((Constraints) -> Void)?
|
|
27
|
+
) {
|
|
28
|
+
translatesAutoresizingMaskIntoConstraints = false
|
|
12
29
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
30
|
+
var topConstraint: NSLayoutConstraint?
|
|
31
|
+
var bottomConstraint: NSLayoutConstraint?
|
|
32
|
+
var leftConstraint: NSLayoutConstraint?
|
|
33
|
+
var rightConstraint: NSLayoutConstraint?
|
|
34
|
+
var heightConstraint: NSLayoutConstraint?
|
|
17
35
|
|
|
18
|
-
if
|
|
36
|
+
if edges.contains(.top) {
|
|
37
|
+
topConstraint = topAnchor.constraint(equalTo: view.topAnchor)
|
|
38
|
+
topConstraint?.isActive = true
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if edges.contains(.bottom) {
|
|
42
|
+
bottomConstraint = bottomAnchor.constraint(equalTo: view.bottomAnchor)
|
|
43
|
+
bottomConstraint?.isActive = true
|
|
44
|
+
}
|
|
19
45
|
|
|
20
|
-
if
|
|
21
|
-
|
|
22
|
-
|
|
46
|
+
if edges.contains(.left) {
|
|
47
|
+
leftConstraint = leadingAnchor.constraint(equalTo: view.leadingAnchor)
|
|
48
|
+
leftConstraint?.isActive = true
|
|
23
49
|
}
|
|
50
|
+
|
|
51
|
+
if edges.contains(.right) {
|
|
52
|
+
rightConstraint = trailingAnchor.constraint(equalTo: view.trailingAnchor)
|
|
53
|
+
rightConstraint?.isActive = true
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if let height {
|
|
57
|
+
heightConstraint = heightAnchor.constraint(equalToConstant: height)
|
|
58
|
+
heightConstraint?.isActive = true
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
constraints?(Constraints(
|
|
62
|
+
top: topConstraint,
|
|
63
|
+
bottom: bottomConstraint,
|
|
64
|
+
left: leftConstraint,
|
|
65
|
+
right: rightConstraint,
|
|
66
|
+
height: heightConstraint
|
|
67
|
+
))
|
|
24
68
|
}
|
|
25
69
|
}
|
package/ios/TrueSheetView.swift
CHANGED
|
@@ -31,6 +31,13 @@ class TrueSheetView: UIView, RCTInvalidating, TrueSheetViewControllerDelegate {
|
|
|
31
31
|
|
|
32
32
|
private var contentView: UIView?
|
|
33
33
|
private var footerView: UIView?
|
|
34
|
+
|
|
35
|
+
// Reference the bottom constraint to adjust during keyboard event
|
|
36
|
+
private var footerViewBottomConstraint: NSLayoutConstraint?
|
|
37
|
+
|
|
38
|
+
// Reference height constraint during content updates
|
|
39
|
+
private var footerViewHeightConstraint: NSLayoutConstraint?
|
|
40
|
+
|
|
34
41
|
private var rctScrollView: RCTScrollView?
|
|
35
42
|
|
|
36
43
|
// Content height minus the footer height for `auto` layout
|
|
@@ -109,15 +116,43 @@ class TrueSheetView: UIView, RCTInvalidating, TrueSheetViewControllerDelegate {
|
|
|
109
116
|
contentView = containerView.subviews[0]
|
|
110
117
|
footerView = containerView.subviews[1]
|
|
111
118
|
|
|
112
|
-
containerView.pinTo(view: viewController.view)
|
|
119
|
+
containerView.pinTo(view: viewController.view, constraints: nil)
|
|
113
120
|
|
|
114
|
-
//
|
|
121
|
+
// Set footer constraints
|
|
122
|
+
if let footerView {
|
|
123
|
+
footerView.pinTo(view: viewController.view, from: [.left, .right, .bottom], with: 0) { constraints in
|
|
124
|
+
self.footerViewBottomConstraint = constraints.bottom
|
|
125
|
+
self.footerViewHeightConstraint = constraints.height
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// Update content containers
|
|
115
130
|
setupContent()
|
|
116
131
|
}
|
|
117
132
|
}
|
|
118
133
|
|
|
119
134
|
// MARK: - ViewController delegate
|
|
120
135
|
|
|
136
|
+
func viewControllerKeyboardWillHide() {
|
|
137
|
+
guard let footerViewBottomConstraint else { return }
|
|
138
|
+
|
|
139
|
+
footerViewBottomConstraint.constant = 0
|
|
140
|
+
|
|
141
|
+
UIView.animate(withDuration: 0.3) {
|
|
142
|
+
self.viewController.view.layoutIfNeeded()
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
func viewControllerKeyboardWillShow(_ keyboardHeight: CGFloat) {
|
|
147
|
+
guard let footerViewBottomConstraint else { return }
|
|
148
|
+
|
|
149
|
+
footerViewBottomConstraint.constant = -keyboardHeight
|
|
150
|
+
|
|
151
|
+
UIView.animate(withDuration: 0.3) {
|
|
152
|
+
self.viewController.view.layoutIfNeeded()
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
121
156
|
func viewControllerDidChangeWidth(_ width: CGFloat) {
|
|
122
157
|
guard let containerView else { return }
|
|
123
158
|
|
|
@@ -238,41 +273,40 @@ class TrueSheetView: UIView, RCTInvalidating, TrueSheetViewControllerDelegate {
|
|
|
238
273
|
}
|
|
239
274
|
}
|
|
240
275
|
|
|
241
|
-
func dismiss(promise: Promise) {
|
|
242
|
-
if isPresented {
|
|
243
|
-
viewController.dismiss(animated: true) {
|
|
244
|
-
promise.resolve(nil)
|
|
245
|
-
}
|
|
246
|
-
} else {
|
|
247
|
-
promise.resolve(nil)
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
|
|
251
276
|
func setupContent() {
|
|
252
277
|
guard let contentView, let containerView else { return }
|
|
253
278
|
|
|
254
279
|
// Add constraints to fix weirdness and support ScrollView
|
|
255
280
|
if let rctScrollView {
|
|
256
|
-
contentView.pinTo(view: containerView)
|
|
257
|
-
rctScrollView.pinTo(view: contentView)
|
|
281
|
+
contentView.pinTo(view: containerView, constraints: nil)
|
|
282
|
+
rctScrollView.pinTo(view: contentView, constraints: nil)
|
|
258
283
|
}
|
|
259
284
|
|
|
260
|
-
|
|
261
|
-
if let footerView {
|
|
285
|
+
if let footerView, let footerViewHeightConstraint {
|
|
262
286
|
if let footerContent = footerView.subviews.first {
|
|
263
287
|
containerView.bringSubviewToFront(footerView)
|
|
264
|
-
|
|
265
|
-
view: viewController.view,
|
|
266
|
-
from: [.bottom, .left, .right],
|
|
267
|
-
with: footerContent.bounds.height
|
|
268
|
-
)
|
|
288
|
+
footerViewHeightConstraint.constant = footerContent.bounds.height
|
|
269
289
|
} else {
|
|
270
290
|
containerView.sendSubviewToBack(footerView)
|
|
271
|
-
|
|
291
|
+
footerViewHeightConstraint.constant = 0
|
|
272
292
|
}
|
|
273
293
|
}
|
|
274
294
|
}
|
|
275
295
|
|
|
296
|
+
func dismiss(promise: Promise) {
|
|
297
|
+
guard isPresented else {
|
|
298
|
+
promise.resolve(nil)
|
|
299
|
+
return
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
// Dismiss the keyboard
|
|
303
|
+
contentView?.endEditing(true)
|
|
304
|
+
|
|
305
|
+
viewController.dismiss(animated: true) {
|
|
306
|
+
promise.resolve(nil)
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
|
|
276
310
|
func present(at index: Int, promise: Promise) {
|
|
277
311
|
let rvc = reactViewController()
|
|
278
312
|
|
|
@@ -20,6 +20,8 @@ protocol TrueSheetViewControllerDelegate: AnyObject {
|
|
|
20
20
|
func viewControllerDidDismiss()
|
|
21
21
|
func viewControllerSheetDidChangeSize(_ sizeInfo: SizeInfo)
|
|
22
22
|
func viewControllerWillAppear()
|
|
23
|
+
func viewControllerKeyboardWillShow(_ keyboardHeight: CGFloat)
|
|
24
|
+
func viewControllerKeyboardWillHide()
|
|
23
25
|
}
|
|
24
26
|
|
|
25
27
|
// MARK: - TrueSheetViewController
|
|
@@ -52,6 +54,10 @@ class TrueSheetViewController: UIViewController, UISheetPresentationControllerDe
|
|
|
52
54
|
view.insertSubview(blurView, at: 0)
|
|
53
55
|
}
|
|
54
56
|
|
|
57
|
+
deinit {
|
|
58
|
+
NotificationCenter.default.removeObserver(self)
|
|
59
|
+
}
|
|
60
|
+
|
|
55
61
|
@available(*, unavailable)
|
|
56
62
|
required init?(coder _: NSCoder) {
|
|
57
63
|
fatalError("init(coder:) has not been implemented")
|
|
@@ -65,6 +71,36 @@ class TrueSheetViewController: UIViewController, UISheetPresentationControllerDe
|
|
|
65
71
|
}
|
|
66
72
|
}
|
|
67
73
|
|
|
74
|
+
override func viewDidLoad() {
|
|
75
|
+
super.viewDidLoad()
|
|
76
|
+
|
|
77
|
+
NotificationCenter.default.addObserver(
|
|
78
|
+
self, selector: #selector(keyboardWillShow(_:)),
|
|
79
|
+
name: UIResponder.keyboardWillShowNotification,
|
|
80
|
+
object: nil
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
NotificationCenter.default.addObserver(
|
|
84
|
+
self, selector: #selector(keyboardWillHide(_:)),
|
|
85
|
+
name: UIResponder.keyboardWillHideNotification,
|
|
86
|
+
object: nil
|
|
87
|
+
)
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
@objc
|
|
91
|
+
private func keyboardWillShow(_ notification: Notification) {
|
|
92
|
+
guard let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue else {
|
|
93
|
+
return
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
delegate?.viewControllerKeyboardWillShow(keyboardSize.height)
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
@objc
|
|
100
|
+
private func keyboardWillHide(_: Notification) {
|
|
101
|
+
delegate?.viewControllerKeyboardWillHide()
|
|
102
|
+
}
|
|
103
|
+
|
|
68
104
|
override func viewWillAppear(_ animated: Bool) {
|
|
69
105
|
super.viewWillAppear(animated)
|
|
70
106
|
delegate?.viewControllerWillAppear()
|
|
@@ -7,6 +7,7 @@ exports.TrueSheet = void 0;
|
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _TrueSheetModule = require("./TrueSheetModule");
|
|
10
|
+
var _TrueSheetGrabber = require("./TrueSheetGrabber");
|
|
10
11
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
11
12
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
12
13
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
@@ -133,7 +134,9 @@ class TrueSheet extends _react.PureComponent {
|
|
|
133
134
|
style: contentContainerStyle
|
|
134
135
|
}, children), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
135
136
|
collapsable: false
|
|
136
|
-
}, !!FooterComponent && /*#__PURE__*/_react.default.createElement(FooterComponent, null))
|
|
137
|
+
}, !!FooterComponent && /*#__PURE__*/_react.default.createElement(FooterComponent, null)), _reactNative.Platform.OS === 'android' && /*#__PURE__*/_react.default.createElement(_TrueSheetGrabber.TrueSheetGrabber, {
|
|
138
|
+
visible: grabber
|
|
139
|
+
})));
|
|
137
140
|
}
|
|
138
141
|
}
|
|
139
142
|
exports.TrueSheet = TrueSheet;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_TrueSheetModule","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","LINKING_ERROR","Platform","select","ios","ComponentName","TrueSheetNativeView","requireNativeComponent","Error","TrueSheet","PureComponent","displayName","constructor","props","ref","createRef","onDismiss","onPresent","onSizeChange","state","scrollableHandle","handle","nodeHandle","findNodeHandle","current","updateState","scrollRef","setState","event","nativeEvent","componentDidMount","sizes","console","warn","componentDidUpdate","present","index","TrueSheetModule","resize","dismiss","render","backgroundColor","grabber","dismissible","blurTint","cornerRadius","maxHeight","FooterComponent","style","contentContainerStyle","children","rest","createElement","$nativeSheet","View","collapsable","overflow","undefined","android","borderTopLeftRadius","borderTopRightRadius","exports","position","left","zIndex"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAWA,IAAAE,gBAAA,GAAAF,OAAA;
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_TrueSheetModule","_TrueSheetGrabber","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","LINKING_ERROR","Platform","select","ios","ComponentName","TrueSheetNativeView","requireNativeComponent","Error","TrueSheet","PureComponent","displayName","constructor","props","ref","createRef","onDismiss","onPresent","onSizeChange","state","scrollableHandle","handle","nodeHandle","findNodeHandle","current","updateState","scrollRef","setState","event","nativeEvent","componentDidMount","sizes","console","warn","componentDidUpdate","present","index","TrueSheetModule","resize","dismiss","render","backgroundColor","grabber","dismissible","blurTint","cornerRadius","maxHeight","FooterComponent","style","contentContainerStyle","children","rest","createElement","$nativeSheet","View","collapsable","overflow","undefined","android","borderTopLeftRadius","borderTopRightRadius","OS","TrueSheetGrabber","visible","exports","position","left","zIndex"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TrueSheetGrabber = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
11
|
+
const GRABBER_WRAPPER_HEIGHT = 24;
|
|
12
|
+
const GRABBER_DEFAULT_HEIGHT = 4;
|
|
13
|
+
const GRABBER_DEFAULT_WIDTH = 32;
|
|
14
|
+
const GRABBER_DEFAULT_COLOR = '#49454F';
|
|
15
|
+
/**
|
|
16
|
+
* Little Grabber component.
|
|
17
|
+
* Used by defualt for Android but feel free to re-use.
|
|
18
|
+
*/
|
|
19
|
+
const TrueSheetGrabber = props => {
|
|
20
|
+
const {
|
|
21
|
+
visible = true,
|
|
22
|
+
color = GRABBER_DEFAULT_COLOR,
|
|
23
|
+
width = GRABBER_DEFAULT_WIDTH,
|
|
24
|
+
height = GRABBER_DEFAULT_HEIGHT,
|
|
25
|
+
style,
|
|
26
|
+
...rest
|
|
27
|
+
} = props;
|
|
28
|
+
if (!visible) return null;
|
|
29
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
30
|
+
style: $wrapper
|
|
31
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, _extends({
|
|
32
|
+
style: [$grabber, {
|
|
33
|
+
height,
|
|
34
|
+
width,
|
|
35
|
+
backgroundColor: color
|
|
36
|
+
}, style]
|
|
37
|
+
}, rest)));
|
|
38
|
+
};
|
|
39
|
+
exports.TrueSheetGrabber = TrueSheetGrabber;
|
|
40
|
+
const $wrapper = {
|
|
41
|
+
position: 'absolute',
|
|
42
|
+
top: 0,
|
|
43
|
+
left: 0,
|
|
44
|
+
right: 0,
|
|
45
|
+
alignSelf: 'center',
|
|
46
|
+
height: GRABBER_WRAPPER_HEIGHT,
|
|
47
|
+
alignItems: 'center',
|
|
48
|
+
zIndex: 9999
|
|
49
|
+
};
|
|
50
|
+
const $grabber = {
|
|
51
|
+
// M3 spec for opacity
|
|
52
|
+
opacity: 0.4,
|
|
53
|
+
borderRadius: GRABBER_DEFAULT_HEIGHT / 2,
|
|
54
|
+
top: 6
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=TrueSheetGrabber.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","GRABBER_WRAPPER_HEIGHT","GRABBER_DEFAULT_HEIGHT","GRABBER_DEFAULT_WIDTH","GRABBER_DEFAULT_COLOR","TrueSheetGrabber","props","visible","color","width","height","style","rest","createElement","View","$wrapper","$grabber","backgroundColor","exports","position","top","left","right","alignSelf","alignItems","zIndex","opacity","borderRadius"],"sourceRoot":"../../src","sources":["TrueSheetGrabber.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAAoF,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,SAAA,IAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAI,GAAA,IAAAD,MAAA,QAAAP,MAAA,CAAAS,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAJ,MAAA,EAAAC,GAAA,KAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAL,MAAA,YAAAJ,QAAA,CAAAa,KAAA,OAAAP,SAAA;AAEpF,MAAMQ,sBAAsB,GAAG,EAAE;AACjC,MAAMC,sBAAsB,GAAG,CAAC;AAChC,MAAMC,qBAAqB,GAAG,EAAE;AAChC,MAAMC,qBAAqB,GAAG,SAAS;AA4BvC;AACA;AACA;AACA;AACO,MAAMC,gBAAgB,GAAIC,KAA4B,IAAK;EAChE,MAAM;IACJC,OAAO,GAAG,IAAI;IACdC,KAAK,GAAGJ,qBAAqB;IAC7BK,KAAK,GAAGN,qBAAqB;IAC7BO,MAAM,GAAGR,sBAAsB;IAC/BS,KAAK;IACL,GAAGC;EACL,CAAC,GAAGN,KAAK;EAET,IAAI,CAACC,OAAO,EAAE,OAAO,IAAI;EAEzB,oBACE3B,MAAA,CAAAM,OAAA,CAAA2B,aAAA,CAAC9B,YAAA,CAAA+B,IAAI;IAACH,KAAK,EAAEI;EAAS,gBACpBnC,MAAA,CAAAM,OAAA,CAAA2B,aAAA,CAAC9B,YAAA,CAAA+B,IAAI,EAAA3B,QAAA;IAACwB,KAAK,EAAE,CAACK,QAAQ,EAAE;MAAEN,MAAM;MAAED,KAAK;MAAEQ,eAAe,EAAET;IAAM,CAAC,EAAEG,KAAK;EAAE,GAAKC,IAAI,CAAG,CAClF,CAAC;AAEX,CAAC;AAAAM,OAAA,CAAAb,gBAAA,GAAAA,gBAAA;AAED,MAAMU,QAAmB,GAAG;EAC1BI,QAAQ,EAAE,UAAU;EACpBC,GAAG,EAAE,CAAC;EACNC,IAAI,EAAE,CAAC;EACPC,KAAK,EAAE,CAAC;EACRC,SAAS,EAAE,QAAQ;EACnBb,MAAM,EAAET,sBAAsB;EAC9BuB,UAAU,EAAE,QAAQ;EACpBC,MAAM,EAAE;AACV,CAAC;AAED,MAAMT,QAAmB,GAAG;EAC1B;EACAU,OAAO,EAAE,GAAG;EACZC,YAAY,EAAEzB,sBAAsB,GAAG,CAAC;EACxCkB,GAAG,EAAE;AACP,CAAC","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -25,4 +25,15 @@ Object.keys(_TrueSheet).forEach(function (key) {
|
|
|
25
25
|
}
|
|
26
26
|
});
|
|
27
27
|
});
|
|
28
|
+
var _TrueSheetGrabber = require("./TrueSheetGrabber");
|
|
29
|
+
Object.keys(_TrueSheetGrabber).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _TrueSheetGrabber[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () {
|
|
35
|
+
return _TrueSheetGrabber[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
28
39
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_types","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_TrueSheet"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,MAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,MAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,MAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,UAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,UAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,UAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,UAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_types","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_TrueSheet","_TrueSheetGrabber"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,MAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,MAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,MAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,UAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,UAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,UAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,UAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,iBAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,iBAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,iBAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,iBAAA,CAAAN,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
package/lib/module/TrueSheet.js
CHANGED
|
@@ -2,6 +2,7 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
|
|
|
2
2
|
import React, { PureComponent, createRef } from 'react';
|
|
3
3
|
import { requireNativeComponent, Platform, findNodeHandle, View } from 'react-native';
|
|
4
4
|
import { TrueSheetModule } from './TrueSheetModule';
|
|
5
|
+
import { TrueSheetGrabber } from './TrueSheetGrabber';
|
|
5
6
|
const LINKING_ERROR = `The package '@lodev09/react-native-true-sheet' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
|
|
6
7
|
ios: "- You have run 'pod install'\n",
|
|
7
8
|
default: ''
|
|
@@ -125,7 +126,9 @@ export class TrueSheet extends PureComponent {
|
|
|
125
126
|
style: contentContainerStyle
|
|
126
127
|
}, children), /*#__PURE__*/React.createElement(View, {
|
|
127
128
|
collapsable: false
|
|
128
|
-
}, !!FooterComponent && /*#__PURE__*/React.createElement(FooterComponent, null))
|
|
129
|
+
}, !!FooterComponent && /*#__PURE__*/React.createElement(FooterComponent, null)), Platform.OS === 'android' && /*#__PURE__*/React.createElement(TrueSheetGrabber, {
|
|
130
|
+
visible: grabber
|
|
131
|
+
})));
|
|
129
132
|
}
|
|
130
133
|
}
|
|
131
134
|
const $nativeSheet = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","PureComponent","createRef","requireNativeComponent","Platform","findNodeHandle","View","TrueSheetModule","LINKING_ERROR","select","ios","default","ComponentName","TrueSheetNativeView","Error","TrueSheet","displayName","constructor","props","ref","onDismiss","bind","onPresent","onSizeChange","state","scrollableHandle","handle","nodeHandle","current","updateState","scrollRef","setState","event","nativeEvent","componentDidMount","sizes","length","console","warn","componentDidUpdate","present","index","resize","dismiss","render","backgroundColor","grabber","dismissible","blurTint","cornerRadius","maxHeight","FooterComponent","style","contentContainerStyle","children","rest","createElement","$nativeSheet","_extends","collapsable","overflow","undefined","android","borderTopLeftRadius","borderTopRightRadius","position","left","zIndex"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,aAAa,EAA6BC,SAAS,QAAwB,OAAO;AAClG,SACEC,sBAAsB,EACtBC,QAAQ,EACRC,cAAc,EACdC,IAAI,QAIC,cAAc;AAGrB,SAASC,eAAe,QAAQ,mBAAmB;
|
|
1
|
+
{"version":3,"names":["React","PureComponent","createRef","requireNativeComponent","Platform","findNodeHandle","View","TrueSheetModule","TrueSheetGrabber","LINKING_ERROR","select","ios","default","ComponentName","TrueSheetNativeView","Error","TrueSheet","displayName","constructor","props","ref","onDismiss","bind","onPresent","onSizeChange","state","scrollableHandle","handle","nodeHandle","current","updateState","scrollRef","setState","event","nativeEvent","componentDidMount","sizes","length","console","warn","componentDidUpdate","present","index","resize","dismiss","render","backgroundColor","grabber","dismissible","blurTint","cornerRadius","maxHeight","FooterComponent","style","contentContainerStyle","children","rest","createElement","$nativeSheet","_extends","collapsable","overflow","undefined","android","borderTopLeftRadius","borderTopRightRadius","OS","visible","position","left","zIndex"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { View } from 'react-native';
|
|
4
|
+
const GRABBER_WRAPPER_HEIGHT = 24;
|
|
5
|
+
const GRABBER_DEFAULT_HEIGHT = 4;
|
|
6
|
+
const GRABBER_DEFAULT_WIDTH = 32;
|
|
7
|
+
const GRABBER_DEFAULT_COLOR = '#49454F';
|
|
8
|
+
/**
|
|
9
|
+
* Little Grabber component.
|
|
10
|
+
* Used by defualt for Android but feel free to re-use.
|
|
11
|
+
*/
|
|
12
|
+
export const TrueSheetGrabber = props => {
|
|
13
|
+
const {
|
|
14
|
+
visible = true,
|
|
15
|
+
color = GRABBER_DEFAULT_COLOR,
|
|
16
|
+
width = GRABBER_DEFAULT_WIDTH,
|
|
17
|
+
height = GRABBER_DEFAULT_HEIGHT,
|
|
18
|
+
style,
|
|
19
|
+
...rest
|
|
20
|
+
} = props;
|
|
21
|
+
if (!visible) return null;
|
|
22
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
23
|
+
style: $wrapper
|
|
24
|
+
}, /*#__PURE__*/React.createElement(View, _extends({
|
|
25
|
+
style: [$grabber, {
|
|
26
|
+
height,
|
|
27
|
+
width,
|
|
28
|
+
backgroundColor: color
|
|
29
|
+
}, style]
|
|
30
|
+
}, rest)));
|
|
31
|
+
};
|
|
32
|
+
const $wrapper = {
|
|
33
|
+
position: 'absolute',
|
|
34
|
+
top: 0,
|
|
35
|
+
left: 0,
|
|
36
|
+
right: 0,
|
|
37
|
+
alignSelf: 'center',
|
|
38
|
+
height: GRABBER_WRAPPER_HEIGHT,
|
|
39
|
+
alignItems: 'center',
|
|
40
|
+
zIndex: 9999
|
|
41
|
+
};
|
|
42
|
+
const $grabber = {
|
|
43
|
+
// M3 spec for opacity
|
|
44
|
+
opacity: 0.4,
|
|
45
|
+
borderRadius: GRABBER_DEFAULT_HEIGHT / 2,
|
|
46
|
+
top: 6
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=TrueSheetGrabber.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","View","GRABBER_WRAPPER_HEIGHT","GRABBER_DEFAULT_HEIGHT","GRABBER_DEFAULT_WIDTH","GRABBER_DEFAULT_COLOR","TrueSheetGrabber","props","visible","color","width","height","style","rest","createElement","$wrapper","_extends","$grabber","backgroundColor","position","top","left","right","alignSelf","alignItems","zIndex","opacity","borderRadius"],"sourceRoot":"../../src","sources":["TrueSheetGrabber.tsx"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAyD,cAAc;AAEpF,MAAMC,sBAAsB,GAAG,EAAE;AACjC,MAAMC,sBAAsB,GAAG,CAAC;AAChC,MAAMC,qBAAqB,GAAG,EAAE;AAChC,MAAMC,qBAAqB,GAAG,SAAS;AA4BvC;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAIC,KAA4B,IAAK;EAChE,MAAM;IACJC,OAAO,GAAG,IAAI;IACdC,KAAK,GAAGJ,qBAAqB;IAC7BK,KAAK,GAAGN,qBAAqB;IAC7BO,MAAM,GAAGR,sBAAsB;IAC/BS,KAAK;IACL,GAAGC;EACL,CAAC,GAAGN,KAAK;EAET,IAAI,CAACC,OAAO,EAAE,OAAO,IAAI;EAEzB,oBACER,KAAA,CAAAc,aAAA,CAACb,IAAI;IAACW,KAAK,EAAEG;EAAS,gBACpBf,KAAA,CAAAc,aAAA,CAACb,IAAI,EAAAe,QAAA;IAACJ,KAAK,EAAE,CAACK,QAAQ,EAAE;MAAEN,MAAM;MAAED,KAAK;MAAEQ,eAAe,EAAET;IAAM,CAAC,EAAEG,KAAK;EAAE,GAAKC,IAAI,CAAG,CAClF,CAAC;AAEX,CAAC;AAED,MAAME,QAAmB,GAAG;EAC1BI,QAAQ,EAAE,UAAU;EACpBC,GAAG,EAAE,CAAC;EACNC,IAAI,EAAE,CAAC;EACPC,KAAK,EAAE,CAAC;EACRC,SAAS,EAAE,QAAQ;EACnBZ,MAAM,EAAET,sBAAsB;EAC9BsB,UAAU,EAAE,QAAQ;EACpBC,MAAM,EAAE;AACV,CAAC;AAED,MAAMR,QAAmB,GAAG;EAC1B;EACAS,OAAO,EAAE,GAAG;EACZC,YAAY,EAAExB,sBAAsB,GAAG,CAAC;EACxCiB,GAAG,EAAE;AACP,CAAC","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,cAAc,SAAS;AACvB,cAAc,aAAa","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,cAAc,SAAS;AACvB,cAAc,aAAa;AAC3B,cAAc,oBAAoB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrueSheet.d.ts","sourceRoot":"","sources":["../../../src/TrueSheet.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAwC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAWlG,OAAO,KAAK,EAAE,cAAc,EAAY,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"TrueSheet.d.ts","sourceRoot":"","sources":["../../../src/TrueSheet.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAwC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAWlG,OAAO,KAAK,EAAE,cAAc,EAAY,MAAM,SAAS,CAAA;AA0BvD,UAAU,cAAc;IACtB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;CAChC;AAED,qBAAa,SAAU,SAAQ,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC;IAC1E,WAAW,SAAc;IAEzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAsB;gBAE9B,KAAK,EAAE,cAAc;IAcjC,OAAO,KAAK,MAAM,GAOjB;IAED,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,SAAS;IAIjB,iBAAiB,IAAI,IAAI;IAUzB,kBAAkB,IAAI,IAAI;IAI1B;;;OAGG;IACU,OAAO,CAAC,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD;;;OAGG;IACU,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC,MAAM,IAAI,SAAS;CA0DpB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type ColorValue, type ViewProps } from 'react-native';
|
|
3
|
+
interface TrueSheetGrabberProps extends ViewProps {
|
|
4
|
+
/**
|
|
5
|
+
* Is grabber visible
|
|
6
|
+
* @default true
|
|
7
|
+
*/
|
|
8
|
+
visible?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Grabber color according to M3 specs
|
|
11
|
+
* @default #49454F
|
|
12
|
+
*/
|
|
13
|
+
color?: ColorValue;
|
|
14
|
+
/**
|
|
15
|
+
* Grabber height according to M3 specs
|
|
16
|
+
* @default 4
|
|
17
|
+
*/
|
|
18
|
+
height?: number;
|
|
19
|
+
/**
|
|
20
|
+
* Grabber width according to M3 specs
|
|
21
|
+
* @default 32
|
|
22
|
+
*/
|
|
23
|
+
width?: number;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Little Grabber component.
|
|
27
|
+
* Used by defualt for Android but feel free to re-use.
|
|
28
|
+
*/
|
|
29
|
+
export declare const TrueSheetGrabber: (props: TrueSheetGrabberProps) => React.JSX.Element | null;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=TrueSheetGrabber.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TrueSheetGrabber.d.ts","sourceRoot":"","sources":["../../../src/TrueSheetGrabber.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAQ,KAAK,UAAU,EAAE,KAAK,SAAS,EAAkB,MAAM,cAAc,CAAA;AAOpF,UAAU,qBAAsB,SAAQ,SAAS;IAC/C;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;;OAGG;IACH,KAAK,CAAC,EAAE,UAAU,CAAA;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,UAAW,qBAAqB,6BAiB5D,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA"}
|
package/package.json
CHANGED
package/src/TrueSheet.tsx
CHANGED
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
|
|
12
12
|
import type { TrueSheetProps, SizeInfo } from './types'
|
|
13
13
|
import { TrueSheetModule } from './TrueSheetModule'
|
|
14
|
+
import { TrueSheetGrabber } from './TrueSheetGrabber'
|
|
14
15
|
|
|
15
16
|
const LINKING_ERROR =
|
|
16
17
|
`The package '@lodev09/react-native-true-sheet' doesn't seem to be linked. Make sure: \n\n` +
|
|
@@ -178,6 +179,7 @@ export class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
|
|
|
178
179
|
{children}
|
|
179
180
|
</View>
|
|
180
181
|
<View collapsable={false}>{!!FooterComponent && <FooterComponent />}</View>
|
|
182
|
+
{Platform.OS === 'android' && <TrueSheetGrabber visible={grabber} />}
|
|
181
183
|
</View>
|
|
182
184
|
</TrueSheetNativeView>
|
|
183
185
|
)
|