@lodev09/react-native-true-sheet 0.6.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.
Files changed (37) hide show
  1. package/README.md +37 -20
  2. package/android/src/main/java/com/lodev09/truesheet/{core/TrueSheetBehavior.kt → TrueSheetBehavior.kt} +69 -40
  3. package/android/src/main/java/com/lodev09/truesheet/TrueSheetDialog.kt +84 -0
  4. package/android/src/main/java/com/lodev09/truesheet/TrueSheetView.kt +87 -61
  5. package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewManager.kt +5 -0
  6. package/android/src/main/java/com/lodev09/truesheet/core/Events.kt +1 -0
  7. package/android/src/main/java/com/lodev09/truesheet/core/KeyboardManager.kt +53 -0
  8. package/android/src/main/java/com/lodev09/truesheet/core/RootViewGroup.kt +1 -1
  9. package/android/src/main/java/com/lodev09/truesheet/core/Utils.kt +5 -37
  10. package/ios/Extensions/UIView+pinTo.swift +54 -10
  11. package/ios/TrueSheetView.swift +106 -56
  12. package/ios/TrueSheetViewController.swift +46 -36
  13. package/ios/TrueSheetViewManager.m +1 -0
  14. package/lib/commonjs/TrueSheet.js +11 -7
  15. package/lib/commonjs/TrueSheet.js.map +1 -1
  16. package/lib/commonjs/TrueSheetGrabber.js +56 -0
  17. package/lib/commonjs/TrueSheetGrabber.js.map +1 -0
  18. package/lib/commonjs/index.js +11 -0
  19. package/lib/commonjs/index.js.map +1 -1
  20. package/lib/module/TrueSheet.js +11 -7
  21. package/lib/module/TrueSheet.js.map +1 -1
  22. package/lib/module/TrueSheetGrabber.js +48 -0
  23. package/lib/module/TrueSheetGrabber.js.map +1 -0
  24. package/lib/module/index.js +1 -0
  25. package/lib/module/index.js.map +1 -1
  26. package/lib/typescript/src/TrueSheet.d.ts.map +1 -1
  27. package/lib/typescript/src/TrueSheetGrabber.d.ts +31 -0
  28. package/lib/typescript/src/TrueSheetGrabber.d.ts.map +1 -0
  29. package/lib/typescript/src/index.d.ts +1 -0
  30. package/lib/typescript/src/index.d.ts.map +1 -1
  31. package/lib/typescript/src/types.d.ts +8 -0
  32. package/lib/typescript/src/types.d.ts.map +1 -1
  33. package/package.json +1 -1
  34. package/src/TrueSheet.tsx +9 -7
  35. package/src/TrueSheetGrabber.tsx +74 -0
  36. package/src/index.ts +1 -0
  37. package/src/types.ts +9 -0
@@ -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":[]}
@@ -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":[]}
@@ -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: ''
@@ -80,10 +81,11 @@ export class TrueSheet extends PureComponent {
80
81
  render() {
81
82
  const {
82
83
  sizes,
83
- backgroundColor,
84
+ backgroundColor = 'white',
85
+ grabber = true,
86
+ dismissible = true,
84
87
  blurTint,
85
88
  cornerRadius,
86
- grabber,
87
89
  maxHeight,
88
90
  FooterComponent,
89
91
  style,
@@ -91,7 +93,6 @@ export class TrueSheet extends PureComponent {
91
93
  children,
92
94
  ...rest
93
95
  } = this.props;
94
- const wrapperBackgroundColor = backgroundColor ?? 'white';
95
96
  return /*#__PURE__*/React.createElement(TrueSheetNativeView, {
96
97
  ref: this.ref,
97
98
  style: $nativeSheet,
@@ -99,7 +100,8 @@ export class TrueSheet extends PureComponent {
99
100
  sizes: sizes ?? ['medium', 'large'],
100
101
  blurTint: blurTint,
101
102
  cornerRadius: cornerRadius,
102
- grabber: grabber ?? true,
103
+ grabber: grabber,
104
+ dismissible: dismissible,
103
105
  maxHeight: maxHeight,
104
106
  onPresent: this.onPresent,
105
107
  onDismiss: this.onDismiss,
@@ -115,8 +117,8 @@ export class TrueSheet extends PureComponent {
115
117
  borderTopRightRadius: cornerRadius,
116
118
  // Remove backgroundColor if `blurTint` is set on iOS
117
119
  backgroundColor: Platform.select({
118
- ios: blurTint ? undefined : wrapperBackgroundColor,
119
- android: wrapperBackgroundColor
120
+ ios: blurTint ? undefined : backgroundColor,
121
+ android: backgroundColor
120
122
  })
121
123
  }, style]
122
124
  }, rest), /*#__PURE__*/React.createElement(View, {
@@ -124,7 +126,9 @@ export class TrueSheet extends PureComponent {
124
126
  style: contentContainerStyle
125
127
  }, children), /*#__PURE__*/React.createElement(View, {
126
128
  collapsable: false
127
- }, !!FooterComponent && /*#__PURE__*/React.createElement(FooterComponent, null))));
129
+ }, !!FooterComponent && /*#__PURE__*/React.createElement(FooterComponent, null)), Platform.OS === 'android' && /*#__PURE__*/React.createElement(TrueSheetGrabber, {
130
+ visible: grabber
131
+ })));
128
132
  }
129
133
  }
130
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","blurTint","cornerRadius","grabber","maxHeight","FooterComponent","style","contentContainerStyle","children","rest","wrapperBackgroundColor","createElement","$nativeSheet","_extends","collapsable","overflow","undefined","android","borderTopLeftRadius","borderTopRightRadius","position","left","zIndex"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
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":[]}
@@ -1,3 +1,4 @@
1
1
  export * from './types';
2
2
  export * from './TrueSheet';
3
+ export * from './TrueSheetGrabber';
3
4
  //# sourceMappingURL=index.js.map
@@ -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;AAyBvD,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;CAyDpB"}
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,3 +1,4 @@
1
1
  export * from './types';
2
2
  export * from './TrueSheet';
3
+ export * from './TrueSheetGrabber';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -72,8 +72,16 @@ export interface TrueSheetProps extends ViewProps {
72
72
  * @default ['medium', 'large']
73
73
  */
74
74
  sizes?: SheetSize[];
75
+ /**
76
+ * Prevents interactive dismissal of the Sheet.
77
+ *
78
+ * @default true
79
+ */
80
+ dismissible?: boolean;
75
81
  /**
76
82
  * Main sheet background color
83
+ *
84
+ * @default white
77
85
  */
78
86
  backgroundColor?: ColorValue;
79
87
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE/E,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAChB,OAAO,GACP,MAAM,GACN,SAAS,GACT,YAAY,GACZ,SAAS,GACT,WAAW,GACX,yBAAyB,GACzB,oBAAoB,GACpB,gBAAgB,GAChB,qBAAqB,GACrB,sBAAsB,GACtB,8BAA8B,GAC9B,yBAAyB,GACzB,qBAAqB,GACrB,0BAA0B,GAC1B,2BAA2B,GAC3B,6BAA6B,GAC7B,wBAAwB,GACxB,oBAAoB,GACpB,yBAAyB,GACzB,0BAA0B,CAAA;AAE9B;;;;;GAKG;AACH,MAAM,MAAM,SAAS;AACnB;;;;;GAKG;AACD,MAAM;AAER;;;;;GAKG;GACD,MAAM;AAER;;;;;GAKG;GACD,GAAG,MAAM,GAAG;AAEd;;;;;GAKG;GACD,OAAO;AAET;;;;;GAKG;GACD,QAAQ;AAEV;;;;;GAKG;GACD,OAAO,CAAA;AAEX,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC/C;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;IAEnB;;OAEG;IACH,eAAe,CAAC,EAAE,UAAU,CAAA;IAE5B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAA;IAEnB;;OAEG;IACH,qBAAqB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAE5C;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IAEzC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,eAAe,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IAExC;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAA;IAEpC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IAEtB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAA;CACxC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE/E,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAChB,OAAO,GACP,MAAM,GACN,SAAS,GACT,YAAY,GACZ,SAAS,GACT,WAAW,GACX,yBAAyB,GACzB,oBAAoB,GACpB,gBAAgB,GAChB,qBAAqB,GACrB,sBAAsB,GACtB,8BAA8B,GAC9B,yBAAyB,GACzB,qBAAqB,GACrB,0BAA0B,GAC1B,2BAA2B,GAC3B,6BAA6B,GAC7B,wBAAwB,GACxB,oBAAoB,GACpB,yBAAyB,GACzB,0BAA0B,CAAA;AAE9B;;;;;GAKG;AACH,MAAM,MAAM,SAAS;AACnB;;;;;GAKG;AACD,MAAM;AAER;;;;;GAKG;GACD,MAAM;AAER;;;;;GAKG;GACD,GAAG,MAAM,GAAG;AAEd;;;;;GAKG;GACD,OAAO;AAET;;;;;GAKG;GACD,QAAQ;AAEV;;;;;GAKG;GACD,OAAO,CAAA;AAEX,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC/C;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;IAEnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB;;;;OAIG;IACH,eAAe,CAAC,EAAE,UAAU,CAAA;IAE5B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAA;IAEnB;;OAEG;IACH,qBAAqB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAE5C;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IAEzC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,eAAe,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IAExC;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAA;IAEpC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IAEtB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAA;CACxC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lodev09/react-native-true-sheet",
3
- "version": "0.6.0",
3
+ "version": "0.8.0",
4
4
  "description": "The true native bottom sheet. 💩",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
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` +
@@ -128,10 +129,11 @@ export class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
128
129
  render(): ReactNode {
129
130
  const {
130
131
  sizes,
131
- backgroundColor,
132
+ backgroundColor = 'white',
133
+ grabber = true,
134
+ dismissible = true,
132
135
  blurTint,
133
136
  cornerRadius,
134
- grabber,
135
137
  maxHeight,
136
138
  FooterComponent,
137
139
  style,
@@ -140,8 +142,6 @@ export class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
140
142
  ...rest
141
143
  } = this.props
142
144
 
143
- const wrapperBackgroundColor = backgroundColor ?? 'white'
144
-
145
145
  return (
146
146
  <TrueSheetNativeView
147
147
  ref={this.ref}
@@ -150,7 +150,8 @@ export class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
150
150
  sizes={sizes ?? ['medium', 'large']}
151
151
  blurTint={blurTint}
152
152
  cornerRadius={cornerRadius}
153
- grabber={grabber ?? true}
153
+ grabber={grabber}
154
+ dismissible={dismissible}
154
155
  maxHeight={maxHeight}
155
156
  onPresent={this.onPresent}
156
157
  onDismiss={this.onDismiss}
@@ -166,8 +167,8 @@ export class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
166
167
 
167
168
  // Remove backgroundColor if `blurTint` is set on iOS
168
169
  backgroundColor: Platform.select({
169
- ios: blurTint ? undefined : wrapperBackgroundColor,
170
- android: wrapperBackgroundColor,
170
+ ios: blurTint ? undefined : backgroundColor,
171
+ android: backgroundColor,
171
172
  }),
172
173
  },
173
174
  style,
@@ -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
  )
@@ -0,0 +1,74 @@
1
+ import React from 'react'
2
+ import { View, type ColorValue, type ViewProps, type ViewStyle } from 'react-native'
3
+
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
+ interface TrueSheetGrabberProps extends ViewProps {
10
+ /**
11
+ * Is grabber visible
12
+ * @default true
13
+ */
14
+ visible?: boolean
15
+
16
+ /**
17
+ * Grabber color according to M3 specs
18
+ * @default #49454F
19
+ */
20
+ color?: ColorValue
21
+
22
+ /**
23
+ * Grabber height according to M3 specs
24
+ * @default 4
25
+ */
26
+ height?: number
27
+
28
+ /**
29
+ * Grabber width according to M3 specs
30
+ * @default 32
31
+ */
32
+ width?: number
33
+ }
34
+
35
+ /**
36
+ * Little Grabber component.
37
+ * Used by defualt for Android but feel free to re-use.
38
+ */
39
+ export const TrueSheetGrabber = (props: TrueSheetGrabberProps) => {
40
+ const {
41
+ visible = true,
42
+ color = GRABBER_DEFAULT_COLOR,
43
+ width = GRABBER_DEFAULT_WIDTH,
44
+ height = GRABBER_DEFAULT_HEIGHT,
45
+ style,
46
+ ...rest
47
+ } = props
48
+
49
+ if (!visible) return null
50
+
51
+ return (
52
+ <View style={$wrapper}>
53
+ <View style={[$grabber, { height, width, backgroundColor: color }, style]} {...rest} />
54
+ </View>
55
+ )
56
+ }
57
+
58
+ const $wrapper: ViewStyle = {
59
+ position: 'absolute',
60
+ top: 0,
61
+ left: 0,
62
+ right: 0,
63
+ alignSelf: 'center',
64
+ height: GRABBER_WRAPPER_HEIGHT,
65
+ alignItems: 'center',
66
+ zIndex: 9999,
67
+ }
68
+
69
+ const $grabber: ViewStyle = {
70
+ // M3 spec for opacity
71
+ opacity: 0.4,
72
+ borderRadius: GRABBER_DEFAULT_HEIGHT / 2,
73
+ top: 6,
74
+ }
package/src/index.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './types'
2
2
  export * from './TrueSheet'
3
+ export * from './TrueSheetGrabber'
package/src/types.ts CHANGED
@@ -103,8 +103,17 @@ export interface TrueSheetProps extends ViewProps {
103
103
  */
104
104
  sizes?: SheetSize[]
105
105
 
106
+ /**
107
+ * Prevents interactive dismissal of the Sheet.
108
+ *
109
+ * @default true
110
+ */
111
+ dismissible?: boolean
112
+
106
113
  /**
107
114
  * Main sheet background color
115
+ *
116
+ * @default white
108
117
  */
109
118
  backgroundColor?: ColorValue
110
119