@lodev09/react-native-true-sheet 0.9.8 → 0.10.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 (34) hide show
  1. package/README.md +9 -224
  2. package/android/src/main/java/com/lodev09/truesheet/TrueSheetDialog.kt +25 -23
  3. package/android/src/main/java/com/lodev09/truesheet/TrueSheetView.kt +25 -20
  4. package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewManager.kt +10 -0
  5. package/ios/TrueSheetView.swift +37 -45
  6. package/ios/TrueSheetViewController.swift +6 -2
  7. package/ios/TrueSheetViewManager.m +4 -0
  8. package/lib/commonjs/TrueSheet.js +79 -26
  9. package/lib/commonjs/TrueSheet.js.map +1 -1
  10. package/lib/commonjs/TrueSheetFooter.js +20 -0
  11. package/lib/commonjs/TrueSheetFooter.js.map +1 -0
  12. package/lib/commonjs/__mocks__/index.js +3 -0
  13. package/lib/commonjs/__mocks__/index.js.map +1 -1
  14. package/lib/module/TrueSheet.js +78 -25
  15. package/lib/module/TrueSheet.js.map +1 -1
  16. package/lib/module/TrueSheetFooter.js +12 -0
  17. package/lib/module/TrueSheetFooter.js.map +1 -0
  18. package/lib/module/__mocks__/index.js +3 -0
  19. package/lib/module/__mocks__/index.js.map +1 -1
  20. package/lib/typescript/docs/docusaurus.config.d.ts +4 -0
  21. package/lib/typescript/docs/docusaurus.config.d.ts.map +1 -0
  22. package/lib/typescript/docs/sidebars.d.ts +4 -0
  23. package/lib/typescript/docs/sidebars.d.ts.map +1 -0
  24. package/lib/typescript/src/TrueSheet.d.ts +27 -3
  25. package/lib/typescript/src/TrueSheet.d.ts.map +1 -1
  26. package/lib/typescript/src/TrueSheetFooter.d.ts +8 -0
  27. package/lib/typescript/src/TrueSheetFooter.d.ts.map +1 -0
  28. package/lib/typescript/src/types.d.ts +15 -0
  29. package/lib/typescript/src/types.d.ts.map +1 -1
  30. package/package.json +8 -8
  31. package/src/TrueSheet.tsx +102 -37
  32. package/src/TrueSheetFooter.tsx +18 -0
  33. package/src/__mocks__/index.js +4 -0
  34. package/src/types.ts +15 -0
@@ -36,7 +36,11 @@ class TrueSheetViewController: UIViewController, UISheetPresentationControllerDe
36
36
  var detentValues: [String: SizeInfo] = [:]
37
37
 
38
38
  var sizes: [Any] = ["medium", "large"]
39
+
39
40
  var maxHeight: CGFloat?
41
+ var contentHeight: CGFloat = 0
42
+ var footerHeight: CGFloat = 0
43
+
40
44
  var cornerRadius: CGFloat?
41
45
  var grabber = true
42
46
 
@@ -123,7 +127,7 @@ class TrueSheetViewController: UIViewController, UISheetPresentationControllerDe
123
127
  }
124
128
 
125
129
  /// Prepares the view controller for sheet presentation
126
- func configureSheet(at index: Int = 0, with contentHeight: CGFloat, _ completion: ((SizeInfo) -> Void)?) {
130
+ func configureSheet(at index: Int = 0, _ completion: ((SizeInfo) -> Void)?) {
127
131
  let defaultSizeInfo = SizeInfo(index: index, value: view.bounds.height)
128
132
 
129
133
  guard #available(iOS 15.0, *), let sheet = sheetPresentationController else {
@@ -136,7 +140,7 @@ class TrueSheetViewController: UIViewController, UISheetPresentationControllerDe
136
140
  var detents: [UISheetPresentationController.Detent] = []
137
141
 
138
142
  for (index, size) in sizes.enumerated() {
139
- let detent = detentFor(size, with: contentHeight, with: maxHeight) { id, value in
143
+ let detent = detentFor(size, with: contentHeight + footerHeight, with: maxHeight) { id, value in
140
144
  self.detentValues[id] = SizeInfo(index: index, value: value)
141
145
  }
142
146
 
@@ -36,4 +36,8 @@ RCT_EXPORT_VIEW_PROPERTY(cornerRadius, NSNumber)
36
36
  RCT_EXPORT_VIEW_PROPERTY(grabber, BOOL)
37
37
  RCT_EXPORT_VIEW_PROPERTY(dismissible, BOOL)
38
38
 
39
+ // Internal properties
40
+ RCT_EXPORT_VIEW_PROPERTY(contentHeight, NSNumber)
41
+ RCT_EXPORT_VIEW_PROPERTY(footerHeight, NSNumber)
42
+
39
43
  @end
@@ -8,39 +8,87 @@ var _react = _interopRequireWildcard(require("react"));
8
8
  var _reactNative = require("react-native");
9
9
  var _TrueSheetModule = require("./TrueSheetModule");
10
10
  var _TrueSheetGrabber = require("./TrueSheetGrabber");
11
+ var _TrueSheetFooter = require("./TrueSheetFooter");
11
12
  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); }
12
13
  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; }
13
14
  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); }
15
+ const NATIVE_COMPONENT_NAME = 'TrueSheetView';
14
16
  const LINKING_ERROR = `The package '@lodev09/react-native-true-sheet' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
15
17
  ios: "- You have run 'pod install'\n",
16
18
  default: ''
17
19
  }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
18
- const ComponentName = 'TrueSheetView';
19
- const TrueSheetNativeView = (0, _reactNative.requireNativeComponent)(ComponentName);
20
+ const TrueSheetNativeView = (0, _reactNative.requireNativeComponent)(NATIVE_COMPONENT_NAME);
20
21
  if (!TrueSheetNativeView) {
21
22
  throw new Error(LINKING_ERROR);
22
23
  }
23
24
  class TrueSheet extends _react.PureComponent {
24
25
  displayName = 'TrueSheet';
26
+ /**
27
+ * Map of sheet names against their handle.
28
+ */
29
+ static handles = {};
25
30
  constructor(props) {
26
31
  super(props);
27
32
  this.ref = /*#__PURE__*/(0, _react.createRef)();
28
33
  this.onDismiss = this.onDismiss.bind(this);
29
34
  this.onPresent = this.onPresent.bind(this);
30
35
  this.onSizeChange = this.onSizeChange.bind(this);
36
+ this.onContentLayout = this.onContentLayout.bind(this);
37
+ this.onFooterLayout = this.onFooterLayout.bind(this);
31
38
  this.state = {
39
+ contentHeight: undefined,
40
+ footerHeight: undefined,
32
41
  scrollableHandle: null
33
42
  };
34
43
  }
44
+ static getHandle(name) {
45
+ const handle = TrueSheet.handles[name];
46
+ if (!handle) {
47
+ console.warn(`Could not get native view tag from "${name}". Check your name prop.`);
48
+ return;
49
+ }
50
+ return handle;
51
+ }
52
+
53
+ /**
54
+ * Present the sheet by given `name`.
55
+ * See `name` prop.
56
+ */
57
+ static async present(name, index = 0) {
58
+ const handle = TrueSheet.getHandle(name);
59
+ if (!handle) return;
60
+ await _TrueSheetModule.TrueSheetModule.present(handle, index);
61
+ }
62
+
63
+ /**
64
+ * Dismiss the sheet by given `name`.
65
+ * See `name` prop.
66
+ */
67
+ static async dismiss(name) {
68
+ const handle = TrueSheet.getHandle(name);
69
+ if (!handle) return;
70
+ await _TrueSheetModule.TrueSheetModule.dismiss(handle);
71
+ }
72
+
73
+ /**
74
+ * Resize the sheet by given `name`.
75
+ * See `name` prop.
76
+ */
77
+ static async resize(name, index) {
78
+ await TrueSheet.present(name, index);
79
+ }
35
80
  get handle() {
36
81
  const nodeHandle = (0, _reactNative.findNodeHandle)(this.ref.current);
37
82
  if (nodeHandle == null || nodeHandle === -1) {
38
- throw new Error(`Could not get native view tag`);
83
+ throw new Error('Could not get native view tag');
39
84
  }
40
85
  return nodeHandle;
41
86
  }
42
87
  updateState() {
43
88
  const scrollableHandle = this.props.scrollRef?.current ? (0, _reactNative.findNodeHandle)(this.props.scrollRef.current) : null;
89
+ if (this.props.name) {
90
+ TrueSheet.handles[this.props.name] = this.handle;
91
+ }
44
92
  this.setState({
45
93
  scrollableHandle
46
94
  });
@@ -51,21 +99,23 @@ class TrueSheet extends _react.PureComponent {
51
99
  onPresent(event) {
52
100
  this.props.onPresent?.(event.nativeEvent);
53
101
  }
54
- onDismiss() {
55
- this.props.onDismiss?.();
102
+ onFooterLayout(layout) {
103
+ console.log('footerHeight', layout.height);
104
+ this.setState({
105
+ footerHeight: layout.height
106
+ });
56
107
  }
57
- componentDidMount() {
58
- if (this.props.sizes && this.props.sizes.length > 3) {
59
- console.warn('TrueSheet only supports a maximum of 3 sizes; collapsed, half-expanded and expanded. Check your `sizes` prop.');
60
- }
61
- this.updateState();
108
+ onContentLayout(layout) {
109
+ this.setState({
110
+ contentHeight: layout.height
111
+ });
62
112
  }
63
- componentDidUpdate() {
64
- this.updateState();
113
+ onDismiss() {
114
+ this.props.onDismiss?.();
65
115
  }
66
116
 
67
117
  /**
68
- * Present the modal sheet. Optionally accepts a size `index`.
118
+ * Present the sheet. Optionally accepts a size `index`.
69
119
  * See `sizes` prop
70
120
  */
71
121
  async present(index = 0) {
@@ -86,6 +136,15 @@ class TrueSheet extends _react.PureComponent {
86
136
  async dismiss() {
87
137
  await _TrueSheetModule.TrueSheetModule.dismiss(this.handle);
88
138
  }
139
+ componentDidMount() {
140
+ if (this.props.sizes && this.props.sizes.length > 3) {
141
+ console.warn('TrueSheet only supports a maximum of 3 sizes; collapsed, half-expanded and expanded. Check your `sizes` prop.');
142
+ }
143
+ this.updateState();
144
+ }
145
+ componentDidUpdate() {
146
+ this.updateState();
147
+ }
89
148
  render() {
90
149
  const {
91
150
  sizes = ['medium', 'large'],
@@ -109,6 +168,8 @@ class TrueSheet extends _react.PureComponent {
109
168
  sizes: sizes,
110
169
  blurTint: blurTint,
111
170
  cornerRadius: cornerRadius,
171
+ contentHeight: this.state.contentHeight,
172
+ footerHeight: this.state.footerHeight,
112
173
  grabber: grabber,
113
174
  dismissible: dismissible,
114
175
  maxHeight: maxHeight,
@@ -132,27 +193,19 @@ class TrueSheet extends _react.PureComponent {
132
193
  }, style]
133
194
  }, rest), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
134
195
  collapsable: false,
196
+ onLayout: e => this.onContentLayout(e.nativeEvent.layout),
135
197
  style: contentContainerStyle
136
198
  }, children), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
137
- collapsable: false
138
- }, /*#__PURE__*/_react.default.createElement(TrueSheetFooter, {
139
- FooterComponent: FooterComponent
199
+ collapsable: false,
200
+ onLayout: e => this.onFooterLayout(e.nativeEvent.layout)
201
+ }, /*#__PURE__*/_react.default.createElement(_TrueSheetFooter.TrueSheetFooter, {
202
+ Component: FooterComponent
140
203
  })), _reactNative.Platform.OS === 'android' && /*#__PURE__*/_react.default.createElement(_TrueSheetGrabber.TrueSheetGrabber, _extends({
141
204
  visible: grabber
142
205
  }, grabberProps))));
143
206
  }
144
207
  }
145
208
  exports.TrueSheet = TrueSheet;
146
- const TrueSheetFooter = props => {
147
- const {
148
- FooterComponent
149
- } = props;
150
- if (!FooterComponent) return null;
151
- if (typeof FooterComponent !== 'function') {
152
- return FooterComponent;
153
- }
154
- return /*#__PURE__*/_react.default.createElement(FooterComponent, null);
155
- };
156
209
  const $nativeSheet = {
157
210
  position: 'absolute',
158
211
  left: -9999,
@@ -1 +1 @@
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","dismissible","grabber","grabberProps","blurTint","cornerRadius","maxHeight","FooterComponent","style","contentContainerStyle","children","rest","createElement","$nativeSheet","View","collapsable","overflow","undefined","android","borderTopLeftRadius","borderTopRightRadius","TrueSheetFooter","OS","TrueSheetGrabber","visible","exports","position","left","zIndex"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_TrueSheetModule","_TrueSheetGrabber","_TrueSheetFooter","_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","NATIVE_COMPONENT_NAME","LINKING_ERROR","Platform","select","ios","TrueSheetNativeView","requireNativeComponent","Error","TrueSheet","PureComponent","displayName","handles","constructor","props","ref","createRef","onDismiss","onPresent","onSizeChange","onContentLayout","onFooterLayout","state","contentHeight","undefined","footerHeight","scrollableHandle","getHandle","name","handle","console","warn","present","index","TrueSheetModule","dismiss","resize","nodeHandle","findNodeHandle","current","updateState","scrollRef","setState","event","nativeEvent","layout","log","height","componentDidMount","sizes","componentDidUpdate","render","backgroundColor","dismissible","grabber","grabberProps","blurTint","cornerRadius","maxHeight","FooterComponent","style","contentContainerStyle","children","rest","createElement","$nativeSheet","View","collapsable","overflow","android","borderTopLeftRadius","borderTopRightRadius","onLayout","TrueSheetFooter","Component","OS","TrueSheetGrabber","visible","exports","position","left","zIndex"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TrueSheetFooter = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ const TrueSheetFooter = props => {
10
+ const {
11
+ Component
12
+ } = props;
13
+ if (!Component) return null;
14
+ if (typeof Component !== 'function') {
15
+ return Component;
16
+ }
17
+ return /*#__PURE__*/_react.default.createElement(Component, null);
18
+ };
19
+ exports.TrueSheetFooter = TrueSheetFooter;
20
+ //# sourceMappingURL=TrueSheetFooter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","obj","__esModule","default","TrueSheetFooter","props","Component","createElement","exports"],"sourceRoot":"../../src","sources":["TrueSheetFooter.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAyB,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAOlB,MAAMG,eAAe,GAAIC,KAA2B,IAAK;EAC9D,MAAM;IAAEC;EAAU,CAAC,GAAGD,KAAK;EAE3B,IAAI,CAACC,SAAS,EAAE,OAAO,IAAI;EAE3B,IAAI,OAAOA,SAAS,KAAK,UAAU,EAAE;IACnC,OAAOA,SAAS;EAClB;EAEA,oBAAOR,MAAA,CAAAK,OAAA,CAAAI,aAAA,CAACD,SAAS,MAAE,CAAC;AACtB,CAAC;AAAAE,OAAA,CAAAJ,eAAA,GAAAA,eAAA","ignoreList":[]}
@@ -23,6 +23,9 @@ Object.keys(_TrueSheetGrabber).forEach(function (key) {
23
23
  });
24
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
25
  class TrueSheet extends _react.default.Component {
26
+ static dismiss = jest.fn();
27
+ static present = jest.fn();
28
+ static resize = jest.fn();
26
29
  dismiss = jest.fn();
27
30
  present = jest.fn();
28
31
  resize = jest.fn();
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_TrueSheetGrabber","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","obj","__esModule","default","TrueSheet","React","Component","dismiss","jest","fn","present","resize","render","createElement","View","props"],"sourceRoot":"../../../src","sources":["__mocks__/index.js"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,iBAAA,GAAAF,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAF,iBAAA,EAAAG,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,MAAAJ,iBAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,iBAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AAAmC,SAAAP,uBAAAgB,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE5B,MAAMG,SAAS,SAASC,cAAK,CAACC,SAAS,CAAC;EAC7CC,OAAO,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;EACnBC,OAAO,GAAGF,IAAI,CAACC,EAAE,CAAC,CAAC;EACnBE,MAAM,GAAGH,IAAI,CAACC,EAAE,CAAC,CAAC;EAElBG,MAAMA,CAAA,EAAG;IACP,oBAAO5B,MAAA,CAAAmB,OAAA,CAAAU,aAAA,CAAC1B,YAAA,CAAA2B,IAAI,EAAK,IAAI,CAACC,KAAQ,CAAC;EACjC;AACF;AAAClB,OAAA,CAAAO,SAAA,GAAAA,SAAA","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_TrueSheetGrabber","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","obj","__esModule","default","TrueSheet","React","Component","dismiss","jest","fn","present","resize","render","createElement","View","props"],"sourceRoot":"../../../src","sources":["__mocks__/index.js"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,iBAAA,GAAAF,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAF,iBAAA,EAAAG,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,MAAAJ,iBAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,iBAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AAAmC,SAAAP,uBAAAgB,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE5B,MAAMG,SAAS,SAASC,cAAK,CAACC,SAAS,CAAC;EAC7C,OAAOC,OAAO,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;EAC1B,OAAOC,OAAO,GAAGF,IAAI,CAACC,EAAE,CAAC,CAAC;EAC1B,OAAOE,MAAM,GAAGH,IAAI,CAACC,EAAE,CAAC,CAAC;EAEzBF,OAAO,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;EACnBC,OAAO,GAAGF,IAAI,CAACC,EAAE,CAAC,CAAC;EACnBE,MAAM,GAAGH,IAAI,CAACC,EAAE,CAAC,CAAC;EAElBG,MAAMA,CAAA,EAAG;IACP,oBAAO5B,MAAA,CAAAmB,OAAA,CAAAU,aAAA,CAAC1B,YAAA,CAAA2B,IAAI,EAAK,IAAI,CAACC,KAAQ,CAAC;EACjC;AACF;AAAClB,OAAA,CAAAO,SAAA,GAAAA,SAAA","ignoreList":[]}
@@ -3,36 +3,84 @@ import React, { PureComponent, createRef } from 'react';
3
3
  import { requireNativeComponent, Platform, findNodeHandle, View } from 'react-native';
4
4
  import { TrueSheetModule } from './TrueSheetModule';
5
5
  import { TrueSheetGrabber } from './TrueSheetGrabber';
6
+ import { TrueSheetFooter } from './TrueSheetFooter';
7
+ const NATIVE_COMPONENT_NAME = 'TrueSheetView';
6
8
  const LINKING_ERROR = `The package '@lodev09/react-native-true-sheet' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
7
9
  ios: "- You have run 'pod install'\n",
8
10
  default: ''
9
11
  }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
10
- const ComponentName = 'TrueSheetView';
11
- const TrueSheetNativeView = requireNativeComponent(ComponentName);
12
+ const TrueSheetNativeView = requireNativeComponent(NATIVE_COMPONENT_NAME);
12
13
  if (!TrueSheetNativeView) {
13
14
  throw new Error(LINKING_ERROR);
14
15
  }
15
16
  export class TrueSheet extends PureComponent {
16
17
  displayName = 'TrueSheet';
18
+ /**
19
+ * Map of sheet names against their handle.
20
+ */
21
+ static handles = {};
17
22
  constructor(props) {
18
23
  super(props);
19
24
  this.ref = /*#__PURE__*/createRef();
20
25
  this.onDismiss = this.onDismiss.bind(this);
21
26
  this.onPresent = this.onPresent.bind(this);
22
27
  this.onSizeChange = this.onSizeChange.bind(this);
28
+ this.onContentLayout = this.onContentLayout.bind(this);
29
+ this.onFooterLayout = this.onFooterLayout.bind(this);
23
30
  this.state = {
31
+ contentHeight: undefined,
32
+ footerHeight: undefined,
24
33
  scrollableHandle: null
25
34
  };
26
35
  }
36
+ static getHandle(name) {
37
+ const handle = TrueSheet.handles[name];
38
+ if (!handle) {
39
+ console.warn(`Could not get native view tag from "${name}". Check your name prop.`);
40
+ return;
41
+ }
42
+ return handle;
43
+ }
44
+
45
+ /**
46
+ * Present the sheet by given `name`.
47
+ * See `name` prop.
48
+ */
49
+ static async present(name, index = 0) {
50
+ const handle = TrueSheet.getHandle(name);
51
+ if (!handle) return;
52
+ await TrueSheetModule.present(handle, index);
53
+ }
54
+
55
+ /**
56
+ * Dismiss the sheet by given `name`.
57
+ * See `name` prop.
58
+ */
59
+ static async dismiss(name) {
60
+ const handle = TrueSheet.getHandle(name);
61
+ if (!handle) return;
62
+ await TrueSheetModule.dismiss(handle);
63
+ }
64
+
65
+ /**
66
+ * Resize the sheet by given `name`.
67
+ * See `name` prop.
68
+ */
69
+ static async resize(name, index) {
70
+ await TrueSheet.present(name, index);
71
+ }
27
72
  get handle() {
28
73
  const nodeHandle = findNodeHandle(this.ref.current);
29
74
  if (nodeHandle == null || nodeHandle === -1) {
30
- throw new Error(`Could not get native view tag`);
75
+ throw new Error('Could not get native view tag');
31
76
  }
32
77
  return nodeHandle;
33
78
  }
34
79
  updateState() {
35
80
  const scrollableHandle = this.props.scrollRef?.current ? findNodeHandle(this.props.scrollRef.current) : null;
81
+ if (this.props.name) {
82
+ TrueSheet.handles[this.props.name] = this.handle;
83
+ }
36
84
  this.setState({
37
85
  scrollableHandle
38
86
  });
@@ -43,21 +91,23 @@ export class TrueSheet extends PureComponent {
43
91
  onPresent(event) {
44
92
  this.props.onPresent?.(event.nativeEvent);
45
93
  }
46
- onDismiss() {
47
- this.props.onDismiss?.();
94
+ onFooterLayout(layout) {
95
+ console.log('footerHeight', layout.height);
96
+ this.setState({
97
+ footerHeight: layout.height
98
+ });
48
99
  }
49
- componentDidMount() {
50
- if (this.props.sizes && this.props.sizes.length > 3) {
51
- console.warn('TrueSheet only supports a maximum of 3 sizes; collapsed, half-expanded and expanded. Check your `sizes` prop.');
52
- }
53
- this.updateState();
100
+ onContentLayout(layout) {
101
+ this.setState({
102
+ contentHeight: layout.height
103
+ });
54
104
  }
55
- componentDidUpdate() {
56
- this.updateState();
105
+ onDismiss() {
106
+ this.props.onDismiss?.();
57
107
  }
58
108
 
59
109
  /**
60
- * Present the modal sheet. Optionally accepts a size `index`.
110
+ * Present the sheet. Optionally accepts a size `index`.
61
111
  * See `sizes` prop
62
112
  */
63
113
  async present(index = 0) {
@@ -78,6 +128,15 @@ export class TrueSheet extends PureComponent {
78
128
  async dismiss() {
79
129
  await TrueSheetModule.dismiss(this.handle);
80
130
  }
131
+ componentDidMount() {
132
+ if (this.props.sizes && this.props.sizes.length > 3) {
133
+ console.warn('TrueSheet only supports a maximum of 3 sizes; collapsed, half-expanded and expanded. Check your `sizes` prop.');
134
+ }
135
+ this.updateState();
136
+ }
137
+ componentDidUpdate() {
138
+ this.updateState();
139
+ }
81
140
  render() {
82
141
  const {
83
142
  sizes = ['medium', 'large'],
@@ -101,6 +160,8 @@ export class TrueSheet extends PureComponent {
101
160
  sizes: sizes,
102
161
  blurTint: blurTint,
103
162
  cornerRadius: cornerRadius,
163
+ contentHeight: this.state.contentHeight,
164
+ footerHeight: this.state.footerHeight,
104
165
  grabber: grabber,
105
166
  dismissible: dismissible,
106
167
  maxHeight: maxHeight,
@@ -124,26 +185,18 @@ export class TrueSheet extends PureComponent {
124
185
  }, style]
125
186
  }, rest), /*#__PURE__*/React.createElement(View, {
126
187
  collapsable: false,
188
+ onLayout: e => this.onContentLayout(e.nativeEvent.layout),
127
189
  style: contentContainerStyle
128
190
  }, children), /*#__PURE__*/React.createElement(View, {
129
- collapsable: false
191
+ collapsable: false,
192
+ onLayout: e => this.onFooterLayout(e.nativeEvent.layout)
130
193
  }, /*#__PURE__*/React.createElement(TrueSheetFooter, {
131
- FooterComponent: FooterComponent
194
+ Component: FooterComponent
132
195
  })), Platform.OS === 'android' && /*#__PURE__*/React.createElement(TrueSheetGrabber, _extends({
133
196
  visible: grabber
134
197
  }, grabberProps))));
135
198
  }
136
199
  }
137
- const TrueSheetFooter = props => {
138
- const {
139
- FooterComponent
140
- } = props;
141
- if (!FooterComponent) return null;
142
- if (typeof FooterComponent !== 'function') {
143
- return FooterComponent;
144
- }
145
- return /*#__PURE__*/React.createElement(FooterComponent, null);
146
- };
147
200
  const $nativeSheet = {
148
201
  position: 'absolute',
149
202
  left: -9999,
@@ -1 +1 @@
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","dismissible","grabber","grabberProps","blurTint","cornerRadius","maxHeight","FooterComponent","style","contentContainerStyle","children","rest","createElement","$nativeSheet","_extends","collapsable","overflow","undefined","android","borderTopLeftRadius","borderTopRightRadius","TrueSheetFooter","OS","visible","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;AACnD,SAASC,gBAAgB,QAAQ,oBAAoB;AAErD,MAAMC,aAAa,GAChB,2FAA0F,GAC3FL,QAAQ,CAACM,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,aAAa,GAAG,eAAe;AAQrC,MAAMC,mBAAmB,GAAGX,sBAAsB,CAA2BU,aAAa,CAAC;AAE3F,IAAI,CAACC,mBAAmB,EAAE;EACxB,MAAM,IAAIC,KAAK,CAACN,aAAa,CAAC;AAChC;AAQA,OAAO,MAAMO,SAAS,SAASf,aAAa,CAAiC;EAC3EgB,WAAW,GAAG,WAAW;EAIzBC,WAAWA,CAACC,KAAqB,EAAE;IACjC,KAAK,CAACA,KAAK,CAAC;IAEZ,IAAI,CAACC,GAAG,gBAAGlB,SAAS,CAAY,CAAC;IAEjC,IAAI,CAACmB,SAAS,GAAG,IAAI,CAACA,SAAS,CAACC,IAAI,CAAC,IAAI,CAAC;IAC1C,IAAI,CAACC,SAAS,GAAG,IAAI,CAACA,SAAS,CAACD,IAAI,CAAC,IAAI,CAAC;IAC1C,IAAI,CAACE,YAAY,GAAG,IAAI,CAACA,YAAY,CAACF,IAAI,CAAC,IAAI,CAAC;IAEhD,IAAI,CAACG,KAAK,GAAG;MACXC,gBAAgB,EAAE;IACpB,CAAC;EACH;EAEA,IAAYC,MAAMA,CAAA,EAAW;IAC3B,MAAMC,UAAU,GAAGvB,cAAc,CAAC,IAAI,CAACe,GAAG,CAACS,OAAO,CAAC;IACnD,IAAID,UAAU,IAAI,IAAI,IAAIA,UAAU,KAAK,CAAC,CAAC,EAAE;MAC3C,MAAM,IAAIb,KAAK,CAAE,+BAA8B,CAAC;IAClD;IAEA,OAAOa,UAAU;EACnB;EAEQE,WAAWA,CAAA,EAAS;IAC1B,MAAMJ,gBAAgB,GAAG,IAAI,CAACP,KAAK,CAACY,SAAS,EAAEF,OAAO,GAClDxB,cAAc,CAAC,IAAI,CAACc,KAAK,CAACY,SAAS,CAACF,OAAO,CAAC,GAC5C,IAAI;IAER,IAAI,CAACG,QAAQ,CAAC;MACZN;IACF,CAAC,CAAC;EACJ;EAEQF,YAAYA,CAACS,KAAqC,EAAQ;IAChE,IAAI,CAACd,KAAK,CAACK,YAAY,GAAGS,KAAK,CAACC,WAAW,CAAC;EAC9C;EAEQX,SAASA,CAACU,KAAqC,EAAQ;IAC7D,IAAI,CAACd,KAAK,CAACI,SAAS,GAAGU,KAAK,CAACC,WAAW,CAAC;EAC3C;EAEQb,SAASA,CAAA,EAAS;IACxB,IAAI,CAACF,KAAK,CAACE,SAAS,GAAG,CAAC;EAC1B;EAEAc,iBAAiBA,CAAA,EAAS;IACxB,IAAI,IAAI,CAAChB,KAAK,CAACiB,KAAK,IAAI,IAAI,CAACjB,KAAK,CAACiB,KAAK,CAACC,MAAM,GAAG,CAAC,EAAE;MACnDC,OAAO,CAACC,IAAI,CACV,+GACF,CAAC;IACH;IAEA,IAAI,CAACT,WAAW,CAAC,CAAC;EACpB;EAEAU,kBAAkBA,CAAA,EAAS;IACzB,IAAI,CAACV,WAAW,CAAC,CAAC;EACpB;;EAEA;AACF;AACA;AACA;EACE,MAAaW,OAAOA,CAACC,KAAa,GAAG,CAAC,EAAiB;IACrD,MAAMnC,eAAe,CAACkC,OAAO,CAAC,IAAI,CAACd,MAAM,EAAEe,KAAK,CAAC;EACnD;;EAEA;AACF;AACA;AACA;EACE,MAAaC,MAAMA,CAACD,KAAa,EAAiB;IAChD,MAAM,IAAI,CAACD,OAAO,CAACC,KAAK,CAAC;EAC3B;;EAEA;AACF;AACA;EACE,MAAaE,OAAOA,CAAA,EAAkB;IACpC,MAAMrC,eAAe,CAACqC,OAAO,CAAC,IAAI,CAACjB,MAAM,CAAC;EAC5C;EAEAkB,MAAMA,CAAA,EAAc;IAClB,MAAM;MACJT,KAAK,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC;MAC3BU,eAAe,GAAG,OAAO;MACzBC,WAAW,GAAG,IAAI;MAClBC,OAAO,GAAG,IAAI;MACdC,YAAY;MACZC,QAAQ;MACRC,YAAY;MACZC,SAAS;MACTC,eAAe;MACfC,KAAK;MACLC,qBAAqB;MACrBC,QAAQ;MACR,GAAGC;IACL,CAAC,GAAG,IAAI,CAACtC,KAAK;IAEd,oBACEnB,KAAA,CAAA0D,aAAA,CAAC5C,mBAAmB;MAClBM,GAAG,EAAE,IAAI,CAACA,GAAI;MACdkC,KAAK,EAAEK,YAAa;MACpBjC,gBAAgB,EAAE,IAAI,CAACD,KAAK,CAACC,gBAAiB;MAC9CU,KAAK,EAAEA,KAAM;MACbc,QAAQ,EAAEA,QAAS;MACnBC,YAAY,EAAEA,YAAa;MAC3BH,OAAO,EAAEA,OAAQ;MACjBD,WAAW,EAAEA,WAAY;MACzBK,SAAS,EAAEA,SAAU;MACrB7B,SAAS,EAAE,IAAI,CAACA,SAAU;MAC1BF,SAAS,EAAE,IAAI,CAACA,SAAU;MAC1BG,YAAY,EAAE,IAAI,CAACA;IAAa,gBAEhCxB,KAAA,CAAA0D,aAAA,CAACpD,IAAI,EAAAsD,QAAA;MACHC,WAAW,EAAE,KAAM;MACnBP,KAAK,EAAE,CACL;QACEQ,QAAQ,EAAE1D,QAAQ,CAACM,MAAM,CAAC;UAAEC,GAAG,EAAEoD,SAAS;UAAEC,OAAO,EAAE;QAAS,CAAC,CAAC;QAChEC,mBAAmB,EAAEd,YAAY;QACjCe,oBAAoB,EAAEf,YAAY;QAElC;QACAL,eAAe,EAAE1C,QAAQ,CAACM,MAAM,CAAC;UAC/BC,GAAG,EAAEuC,QAAQ,GAAGa,SAAS,GAAGjB,eAAe;UAC3CkB,OAAO,EAAElB;QACX,CAAC;MACH,CAAC,EACDQ,KAAK;IACL,GACEG,IAAI,gBAERzD,KAAA,CAAA0D,aAAA,CAACpD,IAAI;MAACuD,WAAW,EAAE,KAAM;MAACP,KAAK,EAAEC;IAAsB,GACpDC,QACG,CAAC,eACPxD,KAAA,CAAA0D,aAAA,CAACpD,IAAI;MAACuD,WAAW,EAAE;IAAM,gBACvB7D,KAAA,CAAA0D,aAAA,CAACS,eAAe;MAACd,eAAe,EAAEA;IAAgB,CAAE,CAChD,CAAC,EACNjD,QAAQ,CAACgE,EAAE,KAAK,SAAS,iBAAIpE,KAAA,CAAA0D,aAAA,CAAClD,gBAAgB,EAAAoD,QAAA;MAACS,OAAO,EAAErB;IAAQ,GAAKC,YAAY,CAAG,CACjF,CACa,CAAC;EAE1B;AACF;AAEA,MAAMkB,eAAe,GAAIhD,KAA8C,IAAK;EAC1E,MAAM;IAAEkC;EAAgB,CAAC,GAAGlC,KAAK;EAEjC,IAAI,CAACkC,eAAe,EAAE,OAAO,IAAI;EAEjC,IAAI,OAAOA,eAAe,KAAK,UAAU,EAAE;IACzC,OAAOA,eAAe;EACxB;EAEA,oBAAOrD,KAAA,CAAA0D,aAAA,CAACL,eAAe,MAAE,CAAC;AAC5B,CAAC;AAED,MAAMM,YAAuB,GAAG;EAC9BW,QAAQ,EAAE,UAAU;EACpBC,IAAI,EAAE,CAAC,IAAI;EACXC,MAAM,EAAE,CAAC;AACX,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","PureComponent","createRef","requireNativeComponent","Platform","findNodeHandle","View","TrueSheetModule","TrueSheetGrabber","TrueSheetFooter","NATIVE_COMPONENT_NAME","LINKING_ERROR","select","ios","default","TrueSheetNativeView","Error","TrueSheet","displayName","handles","constructor","props","ref","onDismiss","bind","onPresent","onSizeChange","onContentLayout","onFooterLayout","state","contentHeight","undefined","footerHeight","scrollableHandle","getHandle","name","handle","console","warn","present","index","dismiss","resize","nodeHandle","current","updateState","scrollRef","setState","event","nativeEvent","layout","log","height","componentDidMount","sizes","length","componentDidUpdate","render","backgroundColor","dismissible","grabber","grabberProps","blurTint","cornerRadius","maxHeight","FooterComponent","style","contentContainerStyle","children","rest","createElement","$nativeSheet","_extends","collapsable","overflow","android","borderTopLeftRadius","borderTopRightRadius","onLayout","e","Component","OS","visible","position","left","zIndex"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ export const TrueSheetFooter = props => {
3
+ const {
4
+ Component
5
+ } = props;
6
+ if (!Component) return null;
7
+ if (typeof Component !== 'function') {
8
+ return Component;
9
+ }
10
+ return /*#__PURE__*/React.createElement(Component, null);
11
+ };
12
+ //# sourceMappingURL=TrueSheetFooter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","TrueSheetFooter","props","Component","createElement"],"sourceRoot":"../../src","sources":["TrueSheetFooter.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAOzB,OAAO,MAAMC,eAAe,GAAIC,KAA2B,IAAK;EAC9D,MAAM;IAAEC;EAAU,CAAC,GAAGD,KAAK;EAE3B,IAAI,CAACC,SAAS,EAAE,OAAO,IAAI;EAE3B,IAAI,OAAOA,SAAS,KAAK,UAAU,EAAE;IACnC,OAAOA,SAAS;EAClB;EAEA,oBAAOH,KAAA,CAAAI,aAAA,CAACD,SAAS,MAAE,CAAC;AACtB,CAAC","ignoreList":[]}
@@ -2,6 +2,9 @@ import React from 'react';
2
2
  import { View } from 'react-native';
3
3
  export * from '../TrueSheetGrabber';
4
4
  export class TrueSheet extends React.Component {
5
+ static dismiss = jest.fn();
6
+ static present = jest.fn();
7
+ static resize = jest.fn();
5
8
  dismiss = jest.fn();
6
9
  present = jest.fn();
7
10
  resize = jest.fn();
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","TrueSheet","Component","dismiss","jest","fn","present","resize","render","createElement","props"],"sourceRoot":"../../../src","sources":["__mocks__/index.js"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AAEnC,cAAc,qBAAqB;AAEnC,OAAO,MAAMC,SAAS,SAASF,KAAK,CAACG,SAAS,CAAC;EAC7CC,OAAO,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;EACnBC,OAAO,GAAGF,IAAI,CAACC,EAAE,CAAC,CAAC;EACnBE,MAAM,GAAGH,IAAI,CAACC,EAAE,CAAC,CAAC;EAElBG,MAAMA,CAAA,EAAG;IACP,oBAAOT,KAAA,CAAAU,aAAA,CAACT,IAAI,EAAK,IAAI,CAACU,KAAQ,CAAC;EACjC;AACF","ignoreList":[]}
1
+ {"version":3,"names":["React","View","TrueSheet","Component","dismiss","jest","fn","present","resize","render","createElement","props"],"sourceRoot":"../../../src","sources":["__mocks__/index.js"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AAEnC,cAAc,qBAAqB;AAEnC,OAAO,MAAMC,SAAS,SAASF,KAAK,CAACG,SAAS,CAAC;EAC7C,OAAOC,OAAO,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;EAC1B,OAAOC,OAAO,GAAGF,IAAI,CAACC,EAAE,CAAC,CAAC;EAC1B,OAAOE,MAAM,GAAGH,IAAI,CAACC,EAAE,CAAC,CAAC;EAEzBF,OAAO,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;EACnBC,OAAO,GAAGF,IAAI,CAACC,EAAE,CAAC,CAAC;EACnBE,MAAM,GAAGH,IAAI,CAACC,EAAE,CAAC,CAAC;EAElBG,MAAMA,CAAA,EAAG;IACP,oBAAOT,KAAA,CAAAU,aAAA,CAACT,IAAI,EAAK,IAAI,CAACU,KAAQ,CAAC;EACjC;AACF","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import type { Config } from '@docusaurus/types';
2
+ declare const config: Config;
3
+ export default config;
4
+ //# sourceMappingURL=docusaurus.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docusaurus.config.d.ts","sourceRoot":"","sources":["../../../docs/docusaurus.config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAI/C,QAAA,MAAM,MAAM,EAAE,MA8Gb,CAAA;AAED,eAAe,MAAM,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { SidebarsConfig } from '@docusaurus/plugin-content-docs';
2
+ declare const sidebars: SidebarsConfig;
3
+ export default sidebars;
4
+ //# sourceMappingURL=sidebars.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebars.d.ts","sourceRoot":"","sources":["../../../docs/sidebars.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAErE,QAAA,MAAM,QAAQ,EAAE,cAOf,CAAA;AAED,eAAe,QAAQ,CAAA"}
@@ -1,21 +1,43 @@
1
1
  import { PureComponent, type ReactNode } from 'react';
2
2
  import type { TrueSheetProps } from './types';
3
3
  interface TrueSheetState {
4
+ contentHeight?: number;
5
+ footerHeight?: number;
4
6
  scrollableHandle: number | null;
5
7
  }
6
8
  export declare class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
7
9
  displayName: string;
8
10
  private readonly ref;
11
+ /**
12
+ * Map of sheet names against their handle.
13
+ */
14
+ private static readonly handles;
9
15
  constructor(props: TrueSheetProps);
16
+ private static getHandle;
17
+ /**
18
+ * Present the sheet by given `name`.
19
+ * See `name` prop.
20
+ */
21
+ static present(name: string, index?: number): Promise<void>;
22
+ /**
23
+ * Dismiss the sheet by given `name`.
24
+ * See `name` prop.
25
+ */
26
+ static dismiss(name: string): Promise<void>;
27
+ /**
28
+ * Resize the sheet by given `name`.
29
+ * See `name` prop.
30
+ */
31
+ static resize(name: string, index: number): Promise<void>;
10
32
  private get handle();
11
33
  private updateState;
12
34
  private onSizeChange;
13
35
  private onPresent;
36
+ private onFooterLayout;
37
+ private onContentLayout;
14
38
  private onDismiss;
15
- componentDidMount(): void;
16
- componentDidUpdate(): void;
17
39
  /**
18
- * Present the modal sheet. Optionally accepts a size `index`.
40
+ * Present the sheet. Optionally accepts a size `index`.
19
41
  * See `sizes` prop
20
42
  */
21
43
  present(index?: number): Promise<void>;
@@ -28,6 +50,8 @@ export declare class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetSt
28
50
  * Dismisses the Sheet
29
51
  */
30
52
  dismiss(): Promise<void>;
53
+ componentDidMount(): void;
54
+ componentDidUpdate(): void;
31
55
  render(): ReactNode;
32
56
  }
33
57
  export {};