@niibase/bottom-sheet-manager 1.4.3 → 1.4.5

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 (35) hide show
  1. package/README.md +210 -13
  2. package/lib/commonjs/index.js +10 -2
  3. package/lib/commonjs/index.js.map +1 -1
  4. package/lib/commonjs/router/view.js +2 -2
  5. package/lib/commonjs/router/view.js.map +1 -1
  6. package/lib/commonjs/{sheet.js → sheets/gorhom.js} +21 -21
  7. package/lib/commonjs/sheets/gorhom.js.map +1 -0
  8. package/lib/commonjs/sheets/truesheet.js +278 -0
  9. package/lib/commonjs/sheets/truesheet.js.map +1 -0
  10. package/lib/module/index.js +2 -1
  11. package/lib/module/index.js.map +1 -1
  12. package/lib/module/router/view.js +1 -1
  13. package/lib/module/router/view.js.map +1 -1
  14. package/lib/module/{sheet.js → sheets/gorhom.js} +22 -22
  15. package/lib/module/sheets/gorhom.js.map +1 -0
  16. package/lib/module/sheets/truesheet.js +271 -0
  17. package/lib/module/sheets/truesheet.js.map +1 -0
  18. package/lib/typescript/index.d.ts +2 -1
  19. package/lib/typescript/index.d.ts.map +1 -1
  20. package/lib/typescript/{sheet.d.ts → sheets/gorhom.d.ts} +2 -2
  21. package/lib/typescript/sheets/gorhom.d.ts.map +1 -0
  22. package/lib/typescript/sheets/truesheet.d.ts +23 -0
  23. package/lib/typescript/sheets/truesheet.d.ts.map +1 -0
  24. package/lib/typescript/types.d.ts +5 -0
  25. package/lib/typescript/types.d.ts.map +1 -1
  26. package/package.json +13 -7
  27. package/src/index.ts +2 -1
  28. package/src/router/view.tsx +1 -1
  29. package/src/{sheet.tsx → sheets/gorhom.tsx} +28 -20
  30. package/src/sheets/truesheet.tsx +443 -0
  31. package/src/types.ts +6 -0
  32. package/lib/commonjs/sheet.js.map +0 -1
  33. package/lib/module/sheet.js.map +0 -1
  34. package/lib/typescript/sheet.d.ts.map +0 -1
  35. package/scripts/postinstall.mjs +0 -34
@@ -0,0 +1,271 @@
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
+ import { TrueSheet } from "@lodev09/react-native-true-sheet";
3
+ import React from "react";
4
+ import { BackHandler, Platform, StyleSheet, View } from "react-native";
5
+ import { interpolate } from "react-native-reanimated";
6
+ import { useSafeAreaInsets } from "react-native-safe-area-context";
7
+ import { eventManager } from "../events";
8
+ import { PrivateManager } from "../manager";
9
+ import { useProviderContext, useSheetIDContext, useSheetRef, useSheetSharedContext } from "../provider";
10
+ const FULL_SCREEN_DETENT = 0.9;
11
+ const useSheetManager = ({
12
+ id,
13
+ onHide,
14
+ onBeforeShow,
15
+ onContextUpdate
16
+ }) => {
17
+ const currentContext = useProviderContext();
18
+ const hasShownRef = React.useRef(false);
19
+ React.useEffect(() => {
20
+ if (!id) return undefined;
21
+ const subscriptions = [eventManager.subscribe(`show_${id}`, (data, context, behavior) => {
22
+ if (currentContext !== context) return;
23
+ if (!hasShownRef.current) {
24
+ hasShownRef.current = true;
25
+ onContextUpdate?.();
26
+ onBeforeShow?.(data, behavior);
27
+ }
28
+ }), eventManager.subscribe(`hide_${id}`, (data, context, dismiss, behavior) => {
29
+ if (currentContext !== context) return;
30
+ hasShownRef.current = false;
31
+ onHide?.(data, dismiss, behavior);
32
+ })];
33
+ return () => {
34
+ hasShownRef.current = false;
35
+ subscriptions.forEach(s => s?.unsubscribe?.());
36
+ };
37
+ }, [id, onHide, onBeforeShow, onContextUpdate, currentContext]);
38
+ };
39
+ const BottomSheetComponent = /*#__PURE__*/React.forwardRef(({
40
+ children,
41
+ onClose,
42
+ onBeforeShow,
43
+ stackBehavior = "switch",
44
+ hardwareBackPressToClose = true,
45
+ detents: defaultDetents,
46
+ dimmed = true,
47
+ opacity,
48
+ iosModalSheetTypeOfAnimation,
49
+ closeAnimationConfigs,
50
+ style,
51
+ ...props
52
+ }, ref) => {
53
+ const currentSheetRef = useSheetRef();
54
+ const currentCtx = useProviderContext();
55
+ const [currentStackBehavior, setCurrentStackBehavior] = React.useState(stackBehavior);
56
+ const isPushed = currentStackBehavior === "push";
57
+ const {
58
+ bottom
59
+ } = useSafeAreaInsets();
60
+ const defaultStyle = React.useMemo(() => ({
61
+ paddingBottom: bottom
62
+ }), [bottom]);
63
+ const {
64
+ fullScreenValues
65
+ } = useSheetSharedContext();
66
+ const [detents, fullScreenIndex] = React.useMemo(() => {
67
+ const resolved = defaultDetents ?? [0.5, 1];
68
+ const fullScreenIdx = resolved.findIndex(p => p === FULL_SCREEN_DETENT || p === 1);
69
+ return [resolved, fullScreenIdx];
70
+ }, [defaultDetents]);
71
+ const valueRef = React.useRef(null);
72
+ const trueSheetRef = React.useRef(null);
73
+ const hardwareBackPressEvent = React.useRef(null);
74
+ const teardownDataRef = React.useRef({});
75
+ const hasPresentedRef = React.useRef(false);
76
+ const id = useSheetIDContext();
77
+ const sheetId = props.id || id;
78
+ const hideSheetRef = React.useRef(null);
79
+ useSheetManager({
80
+ id: sheetId,
81
+ onHide: (data, dismiss, behavior) => {
82
+ if (behavior) setCurrentStackBehavior(behavior);
83
+ hideSheetRef.current(data, true, dismiss, behavior);
84
+ },
85
+ onBeforeShow: (data, behavior) => {
86
+ if (behavior) setCurrentStackBehavior(behavior);
87
+ onBeforeShow?.(data);
88
+ valueRef.current = undefined;
89
+ currentSheetRef.current = getInstance();
90
+ },
91
+ onContextUpdate: () => {
92
+ if (sheetId) {
93
+ PrivateManager.add(sheetId, currentCtx);
94
+ PrivateManager.registerRef(sheetId, currentCtx, {
95
+ current: getInstance()
96
+ });
97
+ }
98
+ }
99
+ });
100
+ const handlePositionChange = React.useCallback(event => {
101
+ const {
102
+ index,
103
+ detent: detentValue
104
+ } = event.nativeEvent;
105
+ if (iosModalSheetTypeOfAnimation && sheetId) {
106
+ const fullScreenIdx = fullScreenIndex >= 0 ? fullScreenIndex : 1;
107
+ const base = fullScreenIndex >= 0 ? index / fullScreenIdx : detentValue >= FULL_SCREEN_DETENT ? 1 : 0;
108
+ const val = interpolate(base, [0.8, 1, 1.2], [0, 1, 0], "clamp");
109
+ const current = {
110
+ ...fullScreenValues.value
111
+ };
112
+ current[sheetId] = val;
113
+ fullScreenValues.set(current);
114
+ }
115
+ }, [iosModalSheetTypeOfAnimation, sheetId, fullScreenIndex, fullScreenValues]);
116
+ React.useEffect(() => {
117
+ return () => {
118
+ if (iosModalSheetTypeOfAnimation && sheetId) {
119
+ const current = {
120
+ ...fullScreenValues.value
121
+ };
122
+ delete current[sheetId];
123
+ fullScreenValues.set(current);
124
+ }
125
+ };
126
+ }, [iosModalSheetTypeOfAnimation, sheetId, fullScreenValues]);
127
+ const teardownSheet = React.useCallback((value, dismiss, behavior) => {
128
+ if (!sheetId) return;
129
+ const hasHistory = PrivateManager.history.length > 0;
130
+ const shouldRestorePrevious = behavior !== "replace";
131
+ eventManager.publish(`onclose_${sheetId}`, value, currentCtx, hasHistory || !!dismiss, behavior);
132
+ if (shouldRestorePrevious) {
133
+ if (dismiss) {
134
+ if (behavior !== "push") {
135
+ PrivateManager.history.push({
136
+ id: sheetId,
137
+ context: currentCtx,
138
+ behavior: behavior
139
+ });
140
+ }
141
+ } else if (hasHistory) {
142
+ const otherSheetsStillOpen = PrivateManager.stack().some(s => !(s.id === sheetId && s.context === currentCtx));
143
+ if (!otherSheetsStillOpen) {
144
+ const prev = PrivateManager.history.pop();
145
+ eventManager.publish(`show_wrap_${prev.id}`, undefined, prev.context, true, prev.behavior);
146
+ }
147
+ }
148
+ }
149
+ PrivateManager.remove(sheetId, currentCtx);
150
+ }, [sheetId, currentCtx]);
151
+ const hideSheet = React.useCallback((data, fromManager, dismiss, incomingBehavior) => {
152
+ const activeBehavior = incomingBehavior ?? currentStackBehavior;
153
+ let value = data ?? valueRef.current;
154
+ hardwareBackPressEvent.current?.remove();
155
+ if (dismiss && activeBehavior === "push") {
156
+ if (fromManager) valueRef.current = data;
157
+ return;
158
+ }
159
+ const shouldClose = activeBehavior !== "replace" || !dismiss;
160
+ if (fromManager && shouldClose) {
161
+ valueRef.current = value;
162
+ teardownDataRef.current = {
163
+ dismiss,
164
+ behavior: activeBehavior
165
+ };
166
+ trueSheetRef.current?.dismiss();
167
+ return;
168
+ }
169
+ const finalDismiss = fromManager ? dismiss : teardownDataRef.current.dismiss;
170
+ const finalBehavior = fromManager ? activeBehavior : teardownDataRef.current.behavior ?? activeBehavior;
171
+ teardownDataRef.current = {};
172
+ const closeValue = onClose?.(value);
173
+ if (closeValue !== undefined) value = closeValue;
174
+ teardownSheet(value, finalDismiss, finalBehavior);
175
+ if (fromManager) valueRef.current = data;
176
+ }, [currentStackBehavior, onClose, teardownSheet]);
177
+ React.useEffect(() => {
178
+ hideSheetRef.current = hideSheet;
179
+ }, [hideSheet]);
180
+ const handleDidDismiss = React.useCallback(() => {
181
+ hideSheetRef.current();
182
+ }, []);
183
+ const handleBackPress = React.useCallback(() => {
184
+ hideSheetRef.current(undefined, true, false);
185
+ return true;
186
+ }, []);
187
+ const detectCount = React.useMemo(() => Math.min(detents?.length ?? 2, 3), [detents]);
188
+ const getInstance = React.useCallback(() => ({
189
+ close(options = {}) {
190
+ valueRef.current = options.value;
191
+ // Ignore animationConfigs — TrueSheet dismiss only supports animated boolean
192
+ trueSheetRef.current?.dismiss();
193
+ },
194
+ expand() {
195
+ trueSheetRef.current?.resize(detectCount - 1);
196
+ },
197
+ collapse() {
198
+ trueSheetRef.current?.resize(0);
199
+ },
200
+ snapToIndex(index) {
201
+ if (index >= 0 && index < detectCount) {
202
+ trueSheetRef.current?.resize(index);
203
+ }
204
+ },
205
+ snapToPosition(position) {
206
+ const numeric = typeof position === "string" ? parseFloat(position) / 100 : typeof position === "number" ? position : 0;
207
+ let closestIndex = 0;
208
+ let minDiff = Infinity;
209
+ for (let i = 0; i < detectCount; i++) {
210
+ const d = detents[i];
211
+ if (typeof d === "number") {
212
+ const diff = Math.abs(d - numeric);
213
+ if (diff < minDiff) {
214
+ minDiff = diff;
215
+ closestIndex = i;
216
+ }
217
+ }
218
+ }
219
+ trueSheetRef.current?.resize(closestIndex);
220
+ }
221
+ }), [detectCount, detents]);
222
+ const presentSheet = React.useCallback(async () => {
223
+ if (hasPresentedRef.current) return;
224
+ hasPresentedRef.current = true;
225
+ await trueSheetRef.current?.present(0);
226
+ }, []);
227
+ React.useEffect(() => {
228
+ if (sheetId) {
229
+ PrivateManager.registerRef(sheetId, currentCtx, {
230
+ current: getInstance()
231
+ });
232
+ }
233
+ currentSheetRef.current = getInstance();
234
+ }, [currentCtx, getInstance, sheetId, currentSheetRef]);
235
+ React.useEffect(() => {
236
+ presentSheet();
237
+ return () => {
238
+ hasPresentedRef.current = false;
239
+ };
240
+ }, [presentSheet]);
241
+ React.useEffect(() => {
242
+ if (Platform.OS === "android" && hardwareBackPressToClose && !trueSheetRef.current) {
243
+ hardwareBackPressEvent.current = BackHandler.addEventListener("hardwareBackPress", () => {
244
+ hideSheetRef.current(undefined, true, false);
245
+ return true;
246
+ });
247
+ }
248
+ return () => hardwareBackPressEvent.current?.remove();
249
+ }, [hardwareBackPressToClose]);
250
+ React.useImperativeHandle(ref, getInstance, [getInstance]);
251
+ const zIndex = React.useMemo(() => isPushed && sheetId ? PrivateManager.zIndex(sheetId, currentCtx) : 0, [sheetId, isPushed, currentCtx]);
252
+ return /*#__PURE__*/React.createElement(View, {
253
+ pointerEvents: "box-none",
254
+ style: [StyleSheet.absoluteFill, {
255
+ zIndex
256
+ }]
257
+ }, /*#__PURE__*/React.createElement(TrueSheet, _extends({}, props, {
258
+ ref: trueSheetRef,
259
+ name: sheetId,
260
+ detents: detents,
261
+ dimmed: dimmed,
262
+ style: [defaultStyle, style],
263
+ onDidDismiss: handleDidDismiss,
264
+ onBackPress: handleBackPress,
265
+ onPositionChange: handlePositionChange
266
+ }), children));
267
+ });
268
+ const BottomSheet = /*#__PURE__*/React.memo(BottomSheetComponent);
269
+ BottomSheet.displayName = "BottomSheet";
270
+ export default BottomSheet;
271
+ //# sourceMappingURL=truesheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TrueSheet","React","BackHandler","Platform","StyleSheet","View","interpolate","useSafeAreaInsets","eventManager","PrivateManager","useProviderContext","useSheetIDContext","useSheetRef","useSheetSharedContext","FULL_SCREEN_DETENT","useSheetManager","id","onHide","onBeforeShow","onContextUpdate","currentContext","hasShownRef","useRef","useEffect","undefined","subscriptions","subscribe","data","context","behavior","current","dismiss","forEach","s","unsubscribe","BottomSheetComponent","forwardRef","children","onClose","stackBehavior","hardwareBackPressToClose","detents","defaultDetents","dimmed","opacity","iosModalSheetTypeOfAnimation","closeAnimationConfigs","style","props","ref","currentSheetRef","currentCtx","currentStackBehavior","setCurrentStackBehavior","useState","isPushed","bottom","defaultStyle","useMemo","paddingBottom","fullScreenValues","fullScreenIndex","resolved","fullScreenIdx","findIndex","p","valueRef","trueSheetRef","hardwareBackPressEvent","teardownDataRef","hasPresentedRef","sheetId","hideSheetRef","getInstance","add","registerRef","handlePositionChange","useCallback","event","index","detent","detentValue","nativeEvent","base","val","value","set","teardownSheet","hasHistory","history","length","shouldRestorePrevious","publish","push","otherSheetsStillOpen","stack","some","prev","pop","remove","hideSheet","fromManager","incomingBehavior","activeBehavior","shouldClose","finalDismiss","finalBehavior","closeValue","handleDidDismiss","handleBackPress","detectCount","Math","min","close","options","expand","resize","collapse","snapToIndex","snapToPosition","position","numeric","parseFloat","closestIndex","minDiff","Infinity","i","d","diff","abs","presentSheet","present","OS","addEventListener","useImperativeHandle","zIndex","createElement","pointerEvents","absoluteFill","_extends","name","onDidDismiss","onBackPress","onPositionChange","BottomSheet","memo","displayName"],"sourceRoot":"../../../src","sources":["sheets/truesheet.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,5 @@
1
- export { default as BottomSheet } from "./sheet";
1
+ export { default as BottomSheet } from "./sheets/gorhom";
2
+ export { default as TrueSheet } from "./sheets/truesheet";
2
3
  export { SheetManager, PrivateManager } from "./manager";
3
4
  export * from "./router";
4
5
  export * from "./types";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACzD,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,OAAO,EACH,aAAa,EACb,eAAe,EACf,WAAW,EACX,UAAU,EACV,uBAAuB,IAAI,qBAAqB,EAChD,aAAa,GAChB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACzD,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,OAAO,EACH,aAAa,EACb,eAAe,EACf,WAAW,EACX,UAAU,EACV,uBAAuB,IAAI,qBAAqB,EAChD,aAAa,GAChB,MAAM,YAAY,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { BottomSheetBackdrop, BottomSheetFlatList, BottomSheetFooter, BottomSheetFooterContainer, BottomSheetHandle, BottomSheetScrollView, BottomSheetSectionList, BottomSheetTextInput, BottomSheetView, BottomSheetVirtualizedList } from "@gorhom/bottom-sheet";
2
2
  import React from "react";
3
- import { BottomSheetInstance, BottomSheetProps, SheetIds } from "./types";
3
+ import { BottomSheetInstance, BottomSheetProps, SheetIds } from "../types";
4
4
  interface BottomSheetFC extends React.MemoExoticComponent<React.ForwardRefExoticComponent<BottomSheetProps>> {
5
5
  <Id extends SheetIds>(props: BottomSheetProps<Id> & React.RefAttributes<BottomSheetInstance<Id>>): React.JSX.Element;
6
6
  View: typeof BottomSheetView;
@@ -16,4 +16,4 @@ interface BottomSheetFC extends React.MemoExoticComponent<React.ForwardRefExotic
16
16
  }
17
17
  declare const BottomSheet: BottomSheetFC;
18
18
  export default BottomSheet;
19
- //# sourceMappingURL=sheet.d.ts.map
19
+ //# sourceMappingURL=gorhom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gorhom.d.ts","sourceRoot":"","sources":["../../../src/sheets/gorhom.tsx"],"names":[],"mappings":"AAAA,OAAsB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,0BAA0B,EAC1B,iBAAiB,EAEjB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,0BAA0B,EAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AA2B1B,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,QAAQ,EAAiB,MAAM,UAAU,CAAC;AAE1F,UAAU,aACR,SAAQ,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;IACpF,CAAC,EAAE,SAAS,QAAQ,EAClB,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,GACzE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IAGrB,IAAI,EAAE,OAAO,eAAe,CAAC;IAC7B,UAAU,EAAE,OAAO,qBAAqB,CAAC;IACzC,QAAQ,EAAE,OAAO,mBAAmB,CAAC;IACrC,WAAW,EAAE,OAAO,sBAAsB,CAAC;IAC3C,eAAe,EAAE,OAAO,0BAA0B,CAAC;IACnD,MAAM,EAAE,OAAO,iBAAiB,CAAC;IACjC,MAAM,EAAE,OAAO,iBAAiB,CAAC;IACjC,eAAe,EAAE,OAAO,0BAA0B,CAAC;IACnD,QAAQ,EAAE,OAAO,mBAAmB,CAAC;IACrC,SAAS,EAAE,OAAO,oBAAoB,CAAC;CACxC;AAiYD,QAAA,MAAM,WAAW,EAAuC,aAAa,CAAC;AActE,eAAe,WAAW,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { TrueSheetProps as NativeTrueSheetProps } from "@lodev09/react-native-true-sheet";
2
+ import React from "react";
3
+ import { type StyleProp, type ViewStyle } from "react-native";
4
+ import { BottomSheetInstance, BottomSheetProps, SheetIds } from "../types";
5
+ type OmittedTrueSheetProps = "name" | "onDidDismiss" | "onBackPress" | "onPositionChange" | "onMount" | "children" | "style";
6
+ interface TrueSheetComponentProps<Id extends SheetIds = SheetIds> extends Omit<NativeTrueSheetProps, OmittedTrueSheetProps> {
7
+ id?: BottomSheetProps<Id>["id"];
8
+ children: React.ReactNode;
9
+ hardwareBackPressToClose?: BottomSheetProps<Id>["hardwareBackPressToClose"];
10
+ onClose?: BottomSheetProps<Id>["onClose"];
11
+ onBeforeShow?: BottomSheetProps<Id>["onBeforeShow"];
12
+ opacity?: BottomSheetProps<Id>["opacity"];
13
+ stackBehavior?: BottomSheetProps<Id>["stackBehavior"];
14
+ iosModalSheetTypeOfAnimation?: BottomSheetProps<Id>["iosModalSheetTypeOfAnimation"];
15
+ closeAnimationConfigs?: BottomSheetProps<Id>["closeAnimationConfigs"];
16
+ style?: StyleProp<ViewStyle>;
17
+ }
18
+ interface BottomSheetFC extends React.MemoExoticComponent<React.ForwardRefExoticComponent<TrueSheetComponentProps>> {
19
+ <Id extends SheetIds>(props: TrueSheetComponentProps<Id> & React.RefAttributes<BottomSheetInstance<Id>>): React.JSX.Element;
20
+ }
21
+ declare const BottomSheet: BottomSheetFC;
22
+ export default BottomSheet;
23
+ //# sourceMappingURL=truesheet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"truesheet.d.ts","sourceRoot":"","sources":["../../../src/sheets/truesheet.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,IAAI,oBAAoB,EAEvC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAML,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAYtB,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,QAAQ,EAAiB,MAAM,UAAU,CAAC;AAE1F,KAAK,qBAAqB,GACtB,MAAM,GACN,cAAc,GACd,aAAa,GACb,kBAAkB,GAClB,SAAS,GACT,UAAU,GACV,OAAO,CAAC;AAEZ,UAAU,uBAAuB,CAAC,EAAE,SAAS,QAAQ,GAAG,QAAQ,CAC9D,SAAQ,IAAI,CAAC,oBAAoB,EAAE,qBAAqB,CAAC;IACzD,EAAE,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,wBAAwB,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC,0BAA0B,CAAC,CAAC;IAC5E,OAAO,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;IAC1C,YAAY,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;IACpD,OAAO,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;IAC1C,aAAa,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC;IACtD,4BAA4B,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC,8BAA8B,CAAC,CAAC;IACpF,qBAAqB,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC,uBAAuB,CAAC,CAAC;IACtE,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,UAAU,aACR,SAAQ,KAAK,CAAC,mBAAmB,CAC/B,KAAK,CAAC,yBAAyB,CAAC,uBAAuB,CAAC,CACzD;IACD,CAAC,EAAE,SAAS,QAAQ,EAClB,KAAK,EAAE,uBAAuB,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,GAChF,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;CACtB;AA6XD,QAAA,MAAM,WAAW,EAAuC,aAAa,CAAC;AAGtE,eAAe,WAAW,CAAC"}
@@ -152,6 +152,11 @@ export type BottomSheetProps<Id extends SheetIds = SheetIds> = Omit<RNBottomShee
152
152
  * @default false
153
153
  */
154
154
  iosModalSheetTypeOfAnimation?: boolean;
155
+ /**
156
+ * Reanimated timing/spring config for dismiss animations initiated by this wrapper
157
+ * (`SheetManager.hide`, ref `close()`, hardware back). Overrides the default snappy close.
158
+ */
159
+ closeAnimationConfigs?: AnimationConfigs;
155
160
  };
156
161
  export {};
157
162
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@niibase/bottom-sheet-manager",
3
- "version": "1.4.3",
3
+ "version": "1.4.5",
4
4
  "description": "A bottom sheet manager for react-native based on @gorhom/bottom-sheet",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -14,10 +14,8 @@
14
14
  "build": "bob build && yarn copy-dts && yarn delete-dts.js",
15
15
  "copy-dts": "copyfiles -u 1 \"src/**/*.d.ts\" lib/typescript",
16
16
  "delete-dts.js": "find ./lib/commonjs -name '*.d.js*' -delete && find ./lib/module -name '*.d.js*' -delete",
17
- "postinstall": "node scripts/postinstall.mjs",
18
17
  "bootstrap": "yarn install && yarn example",
19
- "example": "yarn --cwd example",
20
- "patch": "patch-package"
18
+ "example": "yarn --cwd example"
21
19
  },
22
20
  "repository": {
23
21
  "type": "git",
@@ -58,7 +56,8 @@
58
56
  "react-native": "*",
59
57
  "react-native-gesture-handler": ">=2.28.0",
60
58
  "react-native-reanimated": ">=3.16.0 || >=4.0.0",
61
- "react-native-safe-area-context": "*"
59
+ "react-native-safe-area-context": "*",
60
+ "react-native-worklets": "*"
62
61
  },
63
62
  "peerDependenciesMeta": {
64
63
  "@types/react-native": {
@@ -66,10 +65,17 @@
66
65
  },
67
66
  "@types/react": {
68
67
  "optional": true
68
+ },
69
+ "@react-navigation/native": {
70
+ "optional": true
71
+ },
72
+ "react-native-worklets": {
73
+ "optional": true
69
74
  }
70
75
  },
71
76
  "dependencies": {
72
- "@gorhom/bottom-sheet": "^5.2.8",
77
+ "@gorhom/bottom-sheet": "^5.2.13",
78
+ "@lodev09/react-native-true-sheet": "^3.10.1",
73
79
  "nanoid": "^5.1.6"
74
80
  },
75
81
  "devDependencies": {
@@ -99,4 +105,4 @@
99
105
  "typescript"
100
106
  ]
101
107
  }
102
- }
108
+ }
package/src/index.ts CHANGED
@@ -1,4 +1,5 @@
1
- export { default as BottomSheet } from "./sheet";
1
+ export { default as BottomSheet } from "./sheets/gorhom";
2
+ export { default as TrueSheet } from "./sheets/truesheet";
2
3
  export { SheetManager, PrivateManager } from "./manager";
3
4
  export * from "./router";
4
5
  export * from "./types";
@@ -11,7 +11,7 @@ import type {
11
11
  } from "./types";
12
12
  import { BottomSheetInstance, BottomSheetProps } from "../types";
13
13
  import { BottomSheetActions } from "./router";
14
- import BottomSheet from "../sheet";
14
+ import BottomSheet from "../sheets/gorhom";
15
15
 
16
16
  type Props = {
17
17
  state: BottomSheetNavigationState<ParamListBase>;
@@ -11,6 +11,7 @@ import RNBottomSheet, {
11
11
  BottomSheetView,
12
12
  BottomSheetVirtualizedList,
13
13
  } from "@gorhom/bottom-sheet";
14
+ import React from "react";
14
15
  import {
15
16
  BackHandler,
16
17
  Platform,
@@ -19,23 +20,25 @@ import {
19
20
  type NativeEventSubscription,
20
21
  } from "react-native";
21
22
  import {
23
+ Easing,
22
24
  interpolate,
23
25
  useAnimatedReaction,
24
26
  useSharedValue,
27
+ type WithSpringConfig,
28
+ type WithTimingConfig,
25
29
  } from "react-native-reanimated";
26
30
  import { useSafeAreaInsets } from "react-native-safe-area-context";
27
- import React from "react";
28
31
 
32
+ import { eventManager } from "../events";
33
+ import { PrivateManager } from "../manager";
29
34
  import {
30
35
  useProviderContext,
31
36
  useSheetIDContext,
32
37
  useSheetRef,
33
38
  useSheetSharedContext,
34
39
  useStackBehaviorContext,
35
- } from "./provider";
36
- import { BottomSheetInstance, BottomSheetProps, SheetIds, StackBehavior } from "./types";
37
- import { PrivateManager } from "./manager";
38
- import { eventManager } from "./events";
40
+ } from "../provider";
41
+ import { BottomSheetInstance, BottomSheetProps, SheetIds, StackBehavior } from "../types";
39
42
 
40
43
  interface BottomSheetFC
41
44
  extends React.MemoExoticComponent<React.ForwardRefExoticComponent<BottomSheetProps>> {
@@ -59,6 +62,11 @@ interface BottomSheetFC
59
62
  const FULL_SCREEN_POINTS: (string | number)[] =
60
63
  Platform.OS === "ios" ? ["%90", "90%"] : ["%93", "93%"];
61
64
 
65
+ const DEFAULT_SHEET_CLOSE_ANIMATION: WithTimingConfig = {
66
+ duration: 300,
67
+ easing: Easing.out(Easing.cubic),
68
+ };
69
+
62
70
  const useSheetManager = ({
63
71
  id,
64
72
  onHide,
@@ -121,6 +129,7 @@ const BottomSheetComponent = React.forwardRef<BottomSheetInstance, BottomSheetPr
121
129
  style,
122
130
  passThrough,
123
131
  opacity,
132
+ closeAnimationConfigs,
124
133
  ...props
125
134
  },
126
135
  ref,
@@ -135,11 +144,12 @@ const BottomSheetComponent = React.forwardRef<BottomSheetInstance, BottomSheetPr
135
144
  React.useState<StackBehavior>(stackBehavior);
136
145
  const isPushed = currentStackBehavior === "push";
137
146
 
138
- const { bottom, left, right } = useSafeAreaInsets();
147
+ const { bottom } = useSafeAreaInsets();
148
+ const defaultStyle = React.useMemo(() => ({ paddingBottom: bottom }), [bottom]);
139
149
 
140
- const defaultStyle = React.useMemo(
141
- () => ({ paddingBottom: bottom, paddingLeft: left, paddingRight: right }),
142
- [bottom, left, right],
150
+ const effectiveCloseAnimation = React.useMemo(
151
+ () => closeAnimationConfigs ?? DEFAULT_SHEET_CLOSE_ANIMATION,
152
+ [closeAnimationConfigs],
143
153
  );
144
154
 
145
155
  const { fullScreenValues } = useSheetSharedContext();
@@ -225,7 +235,7 @@ const BottomSheetComponent = React.forwardRef<BottomSheetInstance, BottomSheetPr
225
235
  );
226
236
  const current = { ...fullScreenValues.value };
227
237
  current[sheetId] = val;
228
- fullScreenValues.value = current;
238
+ fullScreenValues.set(current);
229
239
  }
230
240
  },
231
241
  [iosModalSheetTypeOfAnimation, sheetId],
@@ -236,7 +246,7 @@ const BottomSheetComponent = React.forwardRef<BottomSheetInstance, BottomSheetPr
236
246
  if (iosModalSheetTypeOfAnimation && sheetId) {
237
247
  const current = { ...fullScreenValues.value };
238
248
  delete current[sheetId];
239
- fullScreenValues.value = current;
249
+ fullScreenValues.set(current);
240
250
  }
241
251
  };
242
252
  }, [iosModalSheetTypeOfAnimation, sheetId, fullScreenValues]);
@@ -316,7 +326,7 @@ const BottomSheetComponent = React.forwardRef<BottomSheetInstance, BottomSheetPr
316
326
  if (fromManager && shouldClose) {
317
327
  valueRef.current = value;
318
328
  teardownDataRef.current = { dismiss, behavior: activeBehavior };
319
- bottomSheetRef.current?.close();
329
+ bottomSheetRef.current?.close(effectiveCloseAnimation);
320
330
  return;
321
331
  }
322
332
 
@@ -330,15 +340,10 @@ const BottomSheetComponent = React.forwardRef<BottomSheetInstance, BottomSheetPr
330
340
  const closeValue = onClose?.(value as never);
331
341
  if (closeValue !== undefined) value = closeValue;
332
342
 
333
- if (shouldClose) {
334
- bottomSheetRef.current?.close();
335
- }
336
-
337
343
  teardownSheet(value, finalDismiss, finalBehavior);
338
-
339
344
  if (fromManager) valueRef.current = data;
340
345
  },
341
- [currentStackBehavior, onClose, teardownSheet],
346
+ [currentStackBehavior, effectiveCloseAnimation, onClose, teardownSheet],
342
347
  );
343
348
 
344
349
  React.useEffect(() => {
@@ -349,7 +354,10 @@ const BottomSheetComponent = React.forwardRef<BottomSheetInstance, BottomSheetPr
349
354
  (): BottomSheetInstance => ({
350
355
  close(options = {}): void {
351
356
  valueRef.current = (options as Record<string, unknown>).value;
352
- bottomSheetRef.current?.close(options?.animationConfigs);
357
+ const opts = options as {
358
+ animationConfigs?: WithSpringConfig | WithTimingConfig;
359
+ };
360
+ bottomSheetRef.current?.close(opts.animationConfigs ?? effectiveCloseAnimation);
353
361
  },
354
362
  expand(animationConfigs): void {
355
363
  bottomSheetRef.current?.expand(animationConfigs);
@@ -364,7 +372,7 @@ const BottomSheetComponent = React.forwardRef<BottomSheetInstance, BottomSheetPr
364
372
  bottomSheetRef.current?.snapToPosition(position, animationConfigs);
365
373
  },
366
374
  }),
367
- [],
375
+ [effectiveCloseAnimation],
368
376
  );
369
377
 
370
378
  React.useEffect(() => {