@lodev09/react-native-true-sheet 3.7.0 → 3.7.2

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 (45) hide show
  1. package/android/src/main/java/com/lodev09/truesheet/TrueSheetModule.kt +25 -0
  2. package/android/src/main/java/com/lodev09/truesheet/TrueSheetView.kt +40 -15
  3. package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewController.kt +84 -14
  4. package/android/src/main/java/com/lodev09/truesheet/core/RNScreensFragmentObserver.kt +26 -1
  5. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetBottomSheetView.kt +32 -0
  6. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetGrabberView.kt +26 -10
  7. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetKeyboardObserver.kt +2 -2
  8. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetStackManager.kt +23 -0
  9. package/ios/TrueSheetModule.mm +39 -0
  10. package/ios/TrueSheetView.h +4 -0
  11. package/ios/TrueSheetView.mm +49 -0
  12. package/ios/TrueSheetViewController.h +16 -0
  13. package/ios/TrueSheetViewController.mm +16 -0
  14. package/lib/module/TrueSheet.js +10 -0
  15. package/lib/module/TrueSheet.js.map +1 -1
  16. package/lib/module/TrueSheet.web.js +34 -7
  17. package/lib/module/TrueSheet.web.js.map +1 -1
  18. package/lib/module/TrueSheetProvider.js +2 -1
  19. package/lib/module/TrueSheetProvider.js.map +1 -1
  20. package/lib/module/TrueSheetProvider.web.js +24 -1
  21. package/lib/module/TrueSheetProvider.web.js.map +1 -1
  22. package/lib/module/mocks/index.js +3 -1
  23. package/lib/module/mocks/index.js.map +1 -1
  24. package/lib/module/specs/NativeTrueSheetModule.js.map +1 -1
  25. package/lib/typescript/src/TrueSheet.d.ts +7 -0
  26. package/lib/typescript/src/TrueSheet.d.ts.map +1 -1
  27. package/lib/typescript/src/TrueSheet.types.d.ts +4 -0
  28. package/lib/typescript/src/TrueSheet.types.d.ts.map +1 -1
  29. package/lib/typescript/src/TrueSheet.web.d.ts +9 -1
  30. package/lib/typescript/src/TrueSheet.web.d.ts.map +1 -1
  31. package/lib/typescript/src/TrueSheetProvider.d.ts.map +1 -1
  32. package/lib/typescript/src/TrueSheetProvider.web.d.ts +5 -0
  33. package/lib/typescript/src/TrueSheetProvider.web.d.ts.map +1 -1
  34. package/lib/typescript/src/mocks/index.d.ts +1 -0
  35. package/lib/typescript/src/mocks/index.d.ts.map +1 -1
  36. package/lib/typescript/src/specs/NativeTrueSheetModule.d.ts +6 -0
  37. package/lib/typescript/src/specs/NativeTrueSheetModule.d.ts.map +1 -1
  38. package/package.json +1 -1
  39. package/src/TrueSheet.tsx +10 -0
  40. package/src/TrueSheet.types.ts +4 -0
  41. package/src/TrueSheet.web.tsx +50 -6
  42. package/src/TrueSheetProvider.tsx +1 -0
  43. package/src/TrueSheetProvider.web.tsx +26 -0
  44. package/src/mocks/index.ts +2 -0
  45. package/src/specs/NativeTrueSheetModule.ts +7 -0
@@ -79,6 +79,10 @@ export interface TrueSheetContextMethods {
79
79
  * @param index - The detent index to resize to
80
80
  */
81
81
  resize: (name: string, index: number) => Promise<void>;
82
+ /**
83
+ * Dismiss all presented sheets.
84
+ */
85
+ dismissAll: () => Promise<void>;
82
86
  }
83
87
  /**
84
88
  * Options for customizing the grabber (drag handle) appearance.
@@ -1 +1 @@
1
- {"version":3,"file":"TrueSheet.types.d.ts","sourceRoot":"","sources":["../../../src/TrueSheet.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TrueSheet.types.d.ts","sourceRoot":"","sources":["../../../src/TrueSheet.types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,11 @@
1
1
  import type { TrueSheetProps, TrueSheetRef } from './TrueSheet.types';
2
- export declare const TrueSheet: import("react").ForwardRefExoticComponent<TrueSheetProps & import("react").RefAttributes<TrueSheetRef>>;
2
+ declare const TrueSheetComponent: import("react").ForwardRefExoticComponent<TrueSheetProps & import("react").RefAttributes<TrueSheetRef>>;
3
+ interface TrueSheetStatic {
4
+ present: (name: string, index?: number) => Promise<void>;
5
+ dismiss: (name: string) => Promise<void>;
6
+ resize: (name: string, index: number) => Promise<void>;
7
+ dismissAll: () => Promise<void>;
8
+ }
9
+ export declare const TrueSheet: typeof TrueSheetComponent & TrueSheetStatic;
10
+ export {};
3
11
  //# sourceMappingURL=TrueSheet.web.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TrueSheet.web.d.ts","sourceRoot":"","sources":["../../../src/TrueSheet.web.tsx"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EAeb,MAAM,mBAAmB,CAAC;AAiC3B,eAAO,MAAM,SAAS,yGA2ZpB,CAAC"}
1
+ {"version":3,"file":"TrueSheet.web.d.ts","sourceRoot":"","sources":["../../../src/TrueSheet.web.tsx"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EAeb,MAAM,mBAAmB,CAAC;AAiC3B,QAAA,MAAM,kBAAkB,yGAwZtB,CAAC;AAEH,UAAU,eAAe;IACvB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,eAAO,MAAM,SAAS,EAAyB,OAAO,kBAAkB,GAAG,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TrueSheetProvider.d.ts","sourceRoot":"","sources":["../../../src/TrueSheetProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAEjE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE,sBAAsB,aAErE;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,uBAAuB,CAMtD"}
1
+ {"version":3,"file":"TrueSheetProvider.d.ts","sourceRoot":"","sources":["../../../src/TrueSheetProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAEjE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE,sBAAsB,aAErE;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,uBAAuB,CAOtD"}
@@ -7,8 +7,13 @@ interface BottomSheetContextValue extends TrueSheetContextMethods {
7
7
  removeFromStack: (name: string) => void;
8
8
  getSheetsAbove: (name: string) => string[];
9
9
  dismissDirect: (name: string) => Promise<void>;
10
+ dismissAll: () => Promise<void>;
10
11
  }
11
12
  export declare const BottomSheetContext: import("react").Context<BottomSheetContextValue | null>;
13
+ export declare const getPresent: () => ((name: string, index?: number) => Promise<void>) | null;
14
+ export declare const getDismiss: () => ((name: string) => Promise<void>) | null;
15
+ export declare const getResize: () => ((name: string, index: number) => Promise<void>) | null;
16
+ export declare const getDismissAll: () => (() => Promise<void>) | null;
12
17
  export interface TrueSheetProviderProps {
13
18
  children: ReactNode;
14
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TrueSheetProvider.web.d.ts","sourceRoot":"","sources":["../../../src/TrueSheetProvider.web.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1F,OAAO,KAAK,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE/E,UAAU,uBAAwB,SAAQ,uBAAuB;IAC/D,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IACnE,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IAC3C,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAED,eAAO,MAAM,kBAAkB,yDAAsD,CAAC;AAEtF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE,sBAAsB,2CA8FrE;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,uBAAuB,CAYtD"}
1
+ {"version":3,"file":"TrueSheetProvider.web.d.ts","sourceRoot":"","sources":["../../../src/TrueSheetProvider.web.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1F,OAAO,KAAK,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE/E,UAAU,uBAAwB,SAAQ,uBAAuB;IAC/D,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IACnE,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IAC3C,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,eAAO,MAAM,kBAAkB,yDAAsD,CAAC;AAQtF,eAAO,MAAM,UAAU,gBALC,MAAM,UAAU,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,QAKtB,CAAC;AAC3C,eAAO,MAAM,UAAU,gBALC,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,QAKN,CAAC;AAC3C,eAAO,MAAM,SAAS,gBALC,MAAM,SAAS,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,QAKtB,CAAC;AACzC,eAAO,MAAM,aAAa,eALA,OAAO,CAAC,IAAI,CAAC,QAKS,CAAC;AAEjD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE,sBAAsB,2CA2GrE;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,uBAAuB,CAatD"}
@@ -13,6 +13,7 @@ export declare class TrueSheet extends React.Component<TrueSheetProps, TrueSheet
13
13
  static dismiss: jest.Mock<Promise<void>, [_name: string, _animated?: boolean | undefined], any>;
14
14
  static present: jest.Mock<Promise<void>, [_name: string, _index?: number | undefined, _animated?: boolean | undefined], any>;
15
15
  static resize: jest.Mock<Promise<void>, [_name: string, _index: number], any>;
16
+ static dismissAll: jest.Mock<Promise<void>, [_animated?: boolean | undefined], any>;
16
17
  dismiss: jest.Mock<Promise<void>, [_animated?: boolean | undefined], any>;
17
18
  present: jest.Mock<Promise<void>, [_index?: number | undefined, _animated?: boolean | undefined], any>;
18
19
  resize: jest.Mock<Promise<void>, [_index: number], any>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mocks/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAwD,MAAM,OAAO,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAEhG,UAAU,cAAc;IACtB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED;;;GAGG;AACH,qBAAa,SACX,SAAQ,KAAK,CAAC,SAAS,CAAC,cAAc,EAAE,cAAc,CACtD,YAAW,YAAY;IAEvB,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAM;IAEjD,MAAM,CAAC,OAAO,kFAAsE;IACpF,MAAM,CAAC,OAAO,+GAEZ;IACF,MAAM,CAAC,MAAM,iEAAiE;IAE9E,OAAO,mEAAuD;IAC9D,OAAO,gGAAwE;IAC/E,MAAM,kDAAkD;IAExD,iBAAiB;IAOjB,oBAAoB;IAOpB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,YAAY;IAMpB,MAAM;CAIP;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,mBAE5E;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,uBAAuB,CAMtD;AAED,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mocks/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAwD,MAAM,OAAO,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAEhG,UAAU,cAAc;IACtB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED;;;GAGG;AACH,qBAAa,SACX,SAAQ,KAAK,CAAC,SAAS,CAAC,cAAc,EAAE,cAAc,CACtD,YAAW,YAAY;IAEvB,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAM;IAEjD,MAAM,CAAC,OAAO,kFAAsE;IACpF,MAAM,CAAC,OAAO,+GAEZ;IACF,MAAM,CAAC,MAAM,iEAAiE;IAC9E,MAAM,CAAC,UAAU,mEAAuD;IAExE,OAAO,mEAAuD;IAC9D,OAAO,gGAAwE;IAC/E,MAAM,kDAAkD;IAExD,iBAAiB;IAOjB,oBAAoB;IAOpB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,YAAY;IAMpB,MAAM;CAIP;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,mBAE5E;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,uBAAuB,CAOtD;AAED,cAAc,oBAAoB,CAAC"}
@@ -30,6 +30,12 @@ interface Spec extends TurboModule {
30
30
  * @returns Promise that resolves when resize is complete
31
31
  */
32
32
  resizeByRef(viewTag: number, index: number): Promise<void>;
33
+ /**
34
+ * Dismiss all presented sheets
35
+ * @param animated - Whether to animate the dismissals
36
+ * @returns Promise that resolves when all sheets are dismissed
37
+ */
38
+ dismissAll(animated: boolean): Promise<void>;
33
39
  }
34
40
  declare const _default: Spec | null;
35
41
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeTrueSheetModule.d.ts","sourceRoot":"","sources":["../../../../src/specs/NativeTrueSheetModule.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,UAAU,IAAK,SAAQ,WAAW;IAChC;;;;;;;OAOG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/E;;;;;;OAMG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;;;OAKG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;;AAED,wBAAgE"}
1
+ {"version":3,"file":"NativeTrueSheetModule.d.ts","sourceRoot":"","sources":["../../../../src/specs/NativeTrueSheetModule.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,UAAU,IAAK,SAAQ,WAAW;IAChC;;;;;;;OAOG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/E;;;;;;OAMG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;;;OAKG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3D;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;;AAED,wBAAgE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lodev09/react-native-true-sheet",
3
- "version": "3.7.0",
3
+ "version": "3.7.2",
4
4
  "description": "The true native bottom sheet experience for your React Native Apps.",
5
5
  "source": "./src/index.ts",
6
6
  "main": "./lib/module/index.js",
package/src/TrueSheet.tsx CHANGED
@@ -210,6 +210,16 @@ export class TrueSheet
210
210
  return instance.resize(index);
211
211
  }
212
212
 
213
+ /**
214
+ * Dismiss all presented sheets by dismissing from the bottom of the stack.
215
+ * This ensures child sheets are dismissed first before their parent.
216
+ * @param animated - Whether to animate the dismissals (default: true)
217
+ * @returns Promise that resolves when all sheets are dismissed
218
+ */
219
+ public static async dismissAll(animated: boolean = true): Promise<void> {
220
+ return TrueSheetModule?.dismissAll(animated);
221
+ }
222
+
213
223
  private registerInstance(): void {
214
224
  if (this.props.name) {
215
225
  TrueSheet.instances[this.props.name] = this;
@@ -90,6 +90,10 @@ export interface TrueSheetContextMethods {
90
90
  * @param index - The detent index to resize to
91
91
  */
92
92
  resize: (name: string, index: number) => Promise<void>;
93
+ /**
94
+ * Dismiss all presented sheets.
95
+ */
96
+ dismissAll: () => Promise<void>;
93
97
  }
94
98
 
95
99
  /**
@@ -27,7 +27,13 @@ import BottomSheet, {
27
27
  } from '@gorhom/bottom-sheet';
28
28
  import { useDerivedValue, useSharedValue } from 'react-native-reanimated';
29
29
 
30
- import { BottomSheetContext } from './TrueSheetProvider.web';
30
+ import {
31
+ BottomSheetContext,
32
+ getPresent,
33
+ getDismiss,
34
+ getResize,
35
+ getDismissAll,
36
+ } from './TrueSheetProvider.web';
31
37
  import type {
32
38
  TrueSheetProps,
33
39
  TrueSheetRef,
@@ -78,7 +84,7 @@ const renderSlot = (slot: TrueSheetProps['header'] | TrueSheetProps['footer']) =
78
84
  return createElement(slot);
79
85
  };
80
86
 
81
- export const TrueSheet = forwardRef<TrueSheetRef, TrueSheetProps>((props, ref) => {
87
+ const TrueSheetComponent = forwardRef<TrueSheetRef, TrueSheetProps>((props, ref) => {
82
88
  const {
83
89
  name,
84
90
  detents = [0.5, 1],
@@ -289,10 +295,7 @@ export const TrueSheet = forwardRef<TrueSheetRef, TrueSheetProps>((props, ref) =
289
295
  // Will be handled as blur if the sheet doesn't actually dismiss
290
296
  isMinimized.current = true;
291
297
  onWillBlur?.({ nativeEvent: null } as WillBlurEvent);
292
-
293
- if (isDismissing.current) {
294
- onWillDismiss?.({ nativeEvent: null } as WillDismissEvent);
295
- }
298
+ onWillDismiss?.({ nativeEvent: null } as WillDismissEvent);
296
299
  }
297
300
  },
298
301
  [detents, animatedPosition]
@@ -491,6 +494,47 @@ export const TrueSheet = forwardRef<TrueSheetRef, TrueSheetProps>((props, ref) =
491
494
  );
492
495
  });
493
496
 
497
+ interface TrueSheetStatic {
498
+ present: (name: string, index?: number) => Promise<void>;
499
+ dismiss: (name: string) => Promise<void>;
500
+ resize: (name: string, index: number) => Promise<void>;
501
+ dismissAll: () => Promise<void>;
502
+ }
503
+
504
+ export const TrueSheet = TrueSheetComponent as typeof TrueSheetComponent & TrueSheetStatic;
505
+
506
+ TrueSheet.present = async (name: string, index?: number) => {
507
+ const present = getPresent();
508
+ if (!present) {
509
+ throw new Error('TrueSheet.present(): TrueSheetProvider is not mounted.');
510
+ }
511
+ return present(name, index);
512
+ };
513
+
514
+ TrueSheet.dismiss = async (name: string) => {
515
+ const dismiss = getDismiss();
516
+ if (!dismiss) {
517
+ throw new Error('TrueSheet.dismiss(): TrueSheetProvider is not mounted.');
518
+ }
519
+ return dismiss(name);
520
+ };
521
+
522
+ TrueSheet.resize = async (name: string, index: number) => {
523
+ const resize = getResize();
524
+ if (!resize) {
525
+ throw new Error('TrueSheet.resize(): TrueSheetProvider is not mounted.');
526
+ }
527
+ return resize(name, index);
528
+ };
529
+
530
+ TrueSheet.dismissAll = async () => {
531
+ const dismissAll = getDismissAll();
532
+ if (!dismissAll) {
533
+ throw new Error('TrueSheet.dismissAll(): TrueSheetProvider is not mounted.');
534
+ }
535
+ return dismissAll();
536
+ };
537
+
494
538
  const styles = StyleSheet.create({
495
539
  root: {
496
540
  overflow: 'hidden',
@@ -25,5 +25,6 @@ export function useTrueSheet(): TrueSheetContextMethods {
25
25
  present: TrueSheet.present,
26
26
  dismiss: TrueSheet.dismiss,
27
27
  resize: TrueSheet.resize,
28
+ dismissAll: TrueSheet.dismissAll,
28
29
  };
29
30
  }
@@ -9,10 +9,22 @@ interface BottomSheetContextValue extends TrueSheetContextMethods {
9
9
  removeFromStack: (name: string) => void;
10
10
  getSheetsAbove: (name: string) => string[];
11
11
  dismissDirect: (name: string) => Promise<void>;
12
+ dismissAll: () => Promise<void>;
12
13
  }
13
14
 
14
15
  export const BottomSheetContext = createContext<BottomSheetContextValue | null>(null);
15
16
 
17
+ // Module-level references for static methods
18
+ let presentRef: ((name: string, index?: number) => Promise<void>) | null = null;
19
+ let dismissRef: ((name: string) => Promise<void>) | null = null;
20
+ let resizeRef: ((name: string, index: number) => Promise<void>) | null = null;
21
+ let dismissAllRef: (() => Promise<void>) | null = null;
22
+
23
+ export const getPresent = () => presentRef;
24
+ export const getDismiss = () => dismissRef;
25
+ export const getResize = () => resizeRef;
26
+ export const getDismissAll = () => dismissAllRef;
27
+
16
28
  export interface TrueSheetProviderProps {
17
29
  children: ReactNode;
18
30
  }
@@ -98,6 +110,18 @@ export function TrueSheetProvider({ children }: TrueSheetProviderProps) {
98
110
  return sheet.current.resize(index);
99
111
  };
100
112
 
113
+ const dismissAll = async () => {
114
+ const rootSheet = presentedStackRef.current[0];
115
+ if (!rootSheet) return;
116
+ return dismissDirect(rootSheet);
117
+ };
118
+
119
+ // Set module-level refs for static access
120
+ presentRef = present;
121
+ dismissRef = dismiss;
122
+ resizeRef = resize;
123
+ dismissAllRef = dismissAll;
124
+
101
125
  return (
102
126
  <BottomSheetContext.Provider
103
127
  value={{
@@ -107,6 +131,7 @@ export function TrueSheetProvider({ children }: TrueSheetProviderProps) {
107
131
  removeFromStack,
108
132
  getSheetsAbove,
109
133
  dismissDirect,
134
+ dismissAll,
110
135
  present,
111
136
  dismiss,
112
137
  resize,
@@ -132,5 +157,6 @@ export function useTrueSheet(): TrueSheetContextMethods {
132
157
  present: context.present,
133
158
  dismiss: context.dismiss,
134
159
  resize: context.resize,
160
+ dismissAll: context.dismissAll,
135
161
  };
136
162
  }
@@ -22,6 +22,7 @@ export class TrueSheet
22
22
  Promise.resolve()
23
23
  );
24
24
  static resize = jest.fn((_name: string, _index: number) => Promise.resolve());
25
+ static dismissAll = jest.fn((_animated?: boolean) => Promise.resolve());
25
26
 
26
27
  dismiss = jest.fn((_animated?: boolean) => Promise.resolve());
27
28
  present = jest.fn((_index?: number, _animated?: boolean) => Promise.resolve());
@@ -74,6 +75,7 @@ export function useTrueSheet(): TrueSheetContextMethods {
74
75
  present: TrueSheet.present,
75
76
  dismiss: TrueSheet.dismiss,
76
77
  resize: TrueSheet.resize,
78
+ dismissAll: TrueSheet.dismissAll,
77
79
  };
78
80
  }
79
81
 
@@ -35,6 +35,13 @@ interface Spec extends TurboModule {
35
35
  * @returns Promise that resolves when resize is complete
36
36
  */
37
37
  resizeByRef(viewTag: number, index: number): Promise<void>;
38
+
39
+ /**
40
+ * Dismiss all presented sheets
41
+ * @param animated - Whether to animate the dismissals
42
+ * @returns Promise that resolves when all sheets are dismissed
43
+ */
44
+ dismissAll(animated: boolean): Promise<void>;
38
45
  }
39
46
 
40
47
  export default TurboModuleRegistry.get<Spec>('TrueSheetModule');