react-native-bottom-sheet-stack 1.1.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -20
- package/lib/commonjs/BottomSheetHost.js +78 -64
- package/lib/commonjs/BottomSheetHost.js.map +1 -1
- package/lib/commonjs/bottomSheet.store.js +2 -1
- package/lib/commonjs/bottomSheet.store.js.map +1 -1
- package/lib/commonjs/useBottomSheetControl.js +10 -9
- package/lib/commonjs/useBottomSheetControl.js.map +1 -1
- package/lib/commonjs/useBottomSheetState.js +13 -8
- package/lib/commonjs/useBottomSheetState.js.map +1 -1
- package/lib/typescript/src/BottomSheetHost.d.ts.map +1 -1
- package/lib/typescript/src/bottomSheet.store.d.ts +3 -1
- package/lib/typescript/src/bottomSheet.store.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/portal.types.d.ts +13 -4
- package/lib/typescript/src/portal.types.d.ts.map +1 -1
- package/lib/typescript/src/useBottomSheetControl.d.ts +11 -4
- package/lib/typescript/src/useBottomSheetControl.d.ts.map +1 -1
- package/lib/typescript/src/useBottomSheetManager.d.ts +2 -0
- package/lib/typescript/src/useBottomSheetManager.d.ts.map +1 -1
- package/lib/typescript/src/useBottomSheetState.d.ts +9 -2
- package/lib/typescript/src/useBottomSheetState.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/BottomSheetHost.tsx +9 -9
- package/src/bottomSheet.store.ts +4 -1
- package/src/index.tsx +1 -0
- package/src/portal.types.ts +29 -4
- package/src/useBottomSheetControl.ts +25 -8
- package/src/useBottomSheetState.ts +22 -2
package/README.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
A stack manager for [@gorhom/bottom-sheet](https://github.com/gorhom/react-native-bottom-sheet) with `push`, `switch`, and `replace` navigation modes, iOS-style scale animations, and React context preservation.
|
|
4
4
|
|
|
5
|
+
**[Documentation](https://arekkubaczkowski.github.io/react-native-bottom-sheet-stack/)**
|
|
6
|
+
|
|
5
7
|
## Features
|
|
6
8
|
|
|
7
9
|
- **Stack Navigation** — `push`, `switch`, and `replace` modes for managing multiple sheets
|
|
@@ -166,9 +168,9 @@ function MyComponent() {
|
|
|
166
168
|
|
|
167
169
|
The portal API uses [react-native-teleport](https://github.com/nicklockwood/react-native-teleport) to render content in your component tree while displaying it in `BottomSheetHost`.
|
|
168
170
|
|
|
169
|
-
### Type-Safe Portal IDs
|
|
171
|
+
### Type-Safe Portal IDs & Params
|
|
170
172
|
|
|
171
|
-
You can get autocomplete and type checking for portal sheet IDs by augmenting the `BottomSheetPortalRegistry` interface.
|
|
173
|
+
You can get autocomplete and type checking for portal sheet IDs and their parameters by augmenting the `BottomSheetPortalRegistry` interface.
|
|
172
174
|
|
|
173
175
|
**Step 1:** Create a type declaration file in your project (e.g., `src/types/bottom-sheet.d.ts`):
|
|
174
176
|
|
|
@@ -177,13 +179,17 @@ import 'react-native-bottom-sheet-stack';
|
|
|
177
179
|
|
|
178
180
|
declare module 'react-native-bottom-sheet-stack' {
|
|
179
181
|
interface BottomSheetPortalRegistry {
|
|
180
|
-
'settings-sheet': true;
|
|
181
|
-
'profile-sheet':
|
|
182
|
-
'confirm-dialog': true;
|
|
182
|
+
'settings-sheet': true; // no params
|
|
183
|
+
'profile-sheet': { userId: string }; // with required params
|
|
183
184
|
}
|
|
184
185
|
}
|
|
185
186
|
```
|
|
186
187
|
|
|
188
|
+
| Value | Meaning |
|
|
189
|
+
|-------|---------|
|
|
190
|
+
| `true` | Sheet has no params |
|
|
191
|
+
| `{ ... }` | Sheet has required params |
|
|
192
|
+
|
|
187
193
|
**Step 2:** Make sure the file is included in your `tsconfig.json`:
|
|
188
194
|
|
|
189
195
|
```json
|
|
@@ -198,19 +204,35 @@ declare module 'react-native-bottom-sheet-stack' {
|
|
|
198
204
|
}
|
|
199
205
|
```
|
|
200
206
|
|
|
201
|
-
**Step 3:** Now TypeScript will autocomplete and validate
|
|
207
|
+
**Step 3:** Now TypeScript will autocomplete and validate IDs and params:
|
|
202
208
|
|
|
203
209
|
```tsx
|
|
204
|
-
// ✅
|
|
205
|
-
|
|
206
|
-
const control = useBottomSheetControl('settings-sheet');
|
|
210
|
+
// ✅ No params required (defined as `true`)
|
|
211
|
+
settingsControl.open();
|
|
207
212
|
|
|
208
|
-
//
|
|
209
|
-
|
|
210
|
-
|
|
213
|
+
// ✅ Params required (defined as object)
|
|
214
|
+
profileControl.open({ params: { userId: '123' } });
|
|
215
|
+
|
|
216
|
+
// ❌ Error - missing required params
|
|
217
|
+
profileControl.open(); // TypeScript error!
|
|
211
218
|
```
|
|
212
219
|
|
|
213
|
-
|
|
220
|
+
**Step 4:** Access typed params inside your sheet:
|
|
221
|
+
|
|
222
|
+
```tsx
|
|
223
|
+
const ProfileSheet = forwardRef((props, ref) => {
|
|
224
|
+
// Pass the sheet ID as generic to get typed params
|
|
225
|
+
const { params, close } = useBottomSheetState<'profile-sheet'>();
|
|
226
|
+
|
|
227
|
+
return (
|
|
228
|
+
<BottomSheetManaged ref={ref}>
|
|
229
|
+
<Text>User ID: {params.userId}</Text> {/* ✅ type-safe */}
|
|
230
|
+
</BottomSheetManaged>
|
|
231
|
+
);
|
|
232
|
+
});
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
If you don't augment the registry, the `id` accepts any `string` and `params` is `unknown`.
|
|
214
236
|
|
|
215
237
|
## API Reference
|
|
216
238
|
|
|
@@ -254,40 +276,48 @@ const {
|
|
|
254
276
|
} = useBottomSheetManager();
|
|
255
277
|
```
|
|
256
278
|
|
|
257
|
-
#### `useBottomSheetState()`
|
|
279
|
+
#### `useBottomSheetState<T>()`
|
|
258
280
|
|
|
259
|
-
Use inside a bottom sheet component:
|
|
281
|
+
Use inside a bottom sheet component. Pass a portal ID as generic for typed params:
|
|
260
282
|
|
|
261
283
|
```tsx
|
|
262
284
|
const {
|
|
263
285
|
bottomSheetState, // { id, status, groupId, ... }
|
|
286
|
+
params, // typed if generic provided, unknown otherwise
|
|
264
287
|
close, // () => void
|
|
265
|
-
} = useBottomSheetState();
|
|
288
|
+
} = useBottomSheetState<'my-sheet'>();
|
|
266
289
|
```
|
|
267
290
|
|
|
268
|
-
#### `useBottomSheetControl(id:
|
|
291
|
+
#### `useBottomSheetControl<T>(id: T)`
|
|
269
292
|
|
|
270
|
-
Control portal-based sheets:
|
|
293
|
+
Control portal-based sheets. Params are type-safe if registry is augmented:
|
|
271
294
|
|
|
272
295
|
```tsx
|
|
273
296
|
const {
|
|
274
|
-
open, // (options?) => void
|
|
297
|
+
open, // (options?) => void - options include typed params
|
|
275
298
|
close, // () => void
|
|
276
299
|
isOpen, // boolean
|
|
277
300
|
status, // 'opening' | 'open' | 'closing' | 'hidden' | null
|
|
278
301
|
} = useBottomSheetControl('my-sheet');
|
|
302
|
+
|
|
303
|
+
// Open with params (required if defined in registry)
|
|
304
|
+
open({ params: { userId: '123' }, scaleBackground: true });
|
|
279
305
|
```
|
|
280
306
|
|
|
281
307
|
### Types
|
|
282
308
|
|
|
283
309
|
#### `BottomSheetPortalRegistry`
|
|
284
310
|
|
|
285
|
-
Interface to augment for type-safe portal IDs. See [Type-Safe Portal IDs](#type-safe-portal-ids).
|
|
311
|
+
Interface to augment for type-safe portal IDs and params. See [Type-Safe Portal IDs & Params](#type-safe-portal-ids--params).
|
|
286
312
|
|
|
287
313
|
#### `BottomSheetPortalId`
|
|
288
314
|
|
|
289
315
|
Type for portal sheet IDs. If `BottomSheetPortalRegistry` is augmented, this is a union of registered keys. Otherwise, it's `string`.
|
|
290
316
|
|
|
317
|
+
#### `BottomSheetPortalParams<T>`
|
|
318
|
+
|
|
319
|
+
Type helper to extract params for a given portal sheet ID. Returns `undefined` if the sheet has no params (`true` in registry), or the param type if defined.
|
|
320
|
+
|
|
291
321
|
## Example
|
|
292
322
|
|
|
293
323
|
See the [example app](./example) for a full demo including:
|
|
@@ -124,10 +124,11 @@ function BottomSheetHostComp() {
|
|
|
124
124
|
if ($[6] !== groupId || $[7] !== queueIds || $[8] !== scaleConfig) {
|
|
125
125
|
let t5;
|
|
126
126
|
if ($[10] !== groupId || $[11] !== scaleConfig) {
|
|
127
|
-
t5 = id => /*#__PURE__*/(0, _jsxRuntime.jsx)(QueueItem, {
|
|
127
|
+
t5 = (id, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(QueueItem, {
|
|
128
128
|
id: id,
|
|
129
129
|
groupId: groupId,
|
|
130
|
-
scaleConfig: scaleConfig
|
|
130
|
+
scaleConfig: scaleConfig,
|
|
131
|
+
stackIndex: index
|
|
131
132
|
}, id);
|
|
132
133
|
$[10] = groupId;
|
|
133
134
|
$[11] = scaleConfig;
|
|
@@ -159,11 +160,12 @@ function _temp(store) {
|
|
|
159
160
|
return store.clearAll;
|
|
160
161
|
}
|
|
161
162
|
function QueueItem(t0) {
|
|
162
|
-
const $ = (0, _compilerRuntime.c)(
|
|
163
|
+
const $ = (0, _compilerRuntime.c)(34);
|
|
163
164
|
const {
|
|
164
165
|
id,
|
|
165
166
|
groupId,
|
|
166
|
-
scaleConfig
|
|
167
|
+
scaleConfig,
|
|
168
|
+
stackIndex
|
|
167
169
|
} = t0;
|
|
168
170
|
let t1;
|
|
169
171
|
if ($[0] !== id) {
|
|
@@ -206,89 +208,105 @@ function QueueItem(t0) {
|
|
|
206
208
|
t4 = $[6];
|
|
207
209
|
}
|
|
208
210
|
(0, _react.useEffect)(t3, t4);
|
|
211
|
+
const backdropZIndex = stackIndex * 2;
|
|
212
|
+
const contentZIndex = stackIndex * 2 + 1;
|
|
209
213
|
let t5;
|
|
210
|
-
if ($[7]
|
|
211
|
-
t5 = [_reactNative.StyleSheet.absoluteFillObject,
|
|
212
|
-
|
|
214
|
+
if ($[7] !== backdropZIndex) {
|
|
215
|
+
t5 = [_reactNative.StyleSheet.absoluteFillObject, {
|
|
216
|
+
zIndex: backdropZIndex
|
|
217
|
+
}];
|
|
218
|
+
$[7] = backdropZIndex;
|
|
219
|
+
$[8] = t5;
|
|
213
220
|
} else {
|
|
214
|
-
t5 = $[
|
|
221
|
+
t5 = $[8];
|
|
215
222
|
}
|
|
216
223
|
let t6;
|
|
217
|
-
if ($[
|
|
218
|
-
t6 = /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
219
|
-
|
|
220
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_BottomSheetBackdrop.BottomSheetBackdrop, {
|
|
221
|
-
sheetId: id
|
|
222
|
-
})
|
|
224
|
+
if ($[9] !== id) {
|
|
225
|
+
t6 = /*#__PURE__*/(0, _jsxRuntime.jsx)(_BottomSheetBackdrop.BottomSheetBackdrop, {
|
|
226
|
+
sheetId: id
|
|
223
227
|
});
|
|
224
|
-
$[
|
|
225
|
-
$[
|
|
228
|
+
$[9] = id;
|
|
229
|
+
$[10] = t6;
|
|
226
230
|
} else {
|
|
227
|
-
t6 = $[
|
|
231
|
+
t6 = $[10];
|
|
228
232
|
}
|
|
229
233
|
let t7;
|
|
230
|
-
if ($[
|
|
231
|
-
t7 = {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
};
|
|
235
|
-
$[
|
|
236
|
-
$[
|
|
237
|
-
$[
|
|
234
|
+
if ($[11] !== t5 || $[12] !== t6) {
|
|
235
|
+
t7 = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
236
|
+
style: t5,
|
|
237
|
+
children: t6
|
|
238
|
+
});
|
|
239
|
+
$[11] = t5;
|
|
240
|
+
$[12] = t6;
|
|
241
|
+
$[13] = t7;
|
|
238
242
|
} else {
|
|
239
|
-
t7 = $[
|
|
243
|
+
t7 = $[13];
|
|
240
244
|
}
|
|
241
245
|
let t8;
|
|
242
|
-
if ($[
|
|
243
|
-
t8 =
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
246
|
+
if ($[14] !== contentZIndex || $[15] !== height || $[16] !== width) {
|
|
247
|
+
t8 = {
|
|
248
|
+
width,
|
|
249
|
+
height,
|
|
250
|
+
zIndex: contentZIndex
|
|
251
|
+
};
|
|
252
|
+
$[14] = contentZIndex;
|
|
253
|
+
$[15] = height;
|
|
254
|
+
$[16] = width;
|
|
255
|
+
$[17] = t8;
|
|
247
256
|
} else {
|
|
248
|
-
t8 = $[
|
|
257
|
+
t8 = $[17];
|
|
249
258
|
}
|
|
250
259
|
let t9;
|
|
251
|
-
if ($[
|
|
252
|
-
t9 =
|
|
260
|
+
if ($[18] !== scaleStyle || $[19] !== t8) {
|
|
261
|
+
t9 = [_reactNative.StyleSheet.absoluteFillObject, styles.container, t8, scaleStyle];
|
|
262
|
+
$[18] = scaleStyle;
|
|
263
|
+
$[19] = t8;
|
|
264
|
+
$[20] = t9;
|
|
265
|
+
} else {
|
|
266
|
+
t9 = $[20];
|
|
267
|
+
}
|
|
268
|
+
let t10;
|
|
269
|
+
if ($[21] !== height || $[22] !== id || $[23] !== sheet?.content || $[24] !== sheet?.usePortal || $[25] !== width) {
|
|
270
|
+
t10 = sheet?.usePortal ? /*#__PURE__*/(0, _jsxRuntime.jsx)(PortalHostWrapper, {
|
|
253
271
|
id: id,
|
|
254
272
|
width: width,
|
|
255
273
|
height: height
|
|
256
274
|
}) : sheet?.content;
|
|
257
|
-
$[
|
|
258
|
-
$[
|
|
259
|
-
$[
|
|
260
|
-
$[
|
|
261
|
-
$[
|
|
262
|
-
$[
|
|
275
|
+
$[21] = height;
|
|
276
|
+
$[22] = id;
|
|
277
|
+
$[23] = sheet?.content;
|
|
278
|
+
$[24] = sheet?.usePortal;
|
|
279
|
+
$[25] = width;
|
|
280
|
+
$[26] = t10;
|
|
263
281
|
} else {
|
|
264
|
-
|
|
282
|
+
t10 = $[26];
|
|
265
283
|
}
|
|
266
|
-
let
|
|
267
|
-
if ($[
|
|
268
|
-
|
|
269
|
-
style:
|
|
270
|
-
children:
|
|
284
|
+
let t11;
|
|
285
|
+
if ($[27] !== t10 || $[28] !== t9) {
|
|
286
|
+
t11 = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
287
|
+
style: t9,
|
|
288
|
+
children: t10
|
|
271
289
|
});
|
|
272
|
-
$[
|
|
273
|
-
$[
|
|
274
|
-
$[
|
|
290
|
+
$[27] = t10;
|
|
291
|
+
$[28] = t9;
|
|
292
|
+
$[29] = t11;
|
|
275
293
|
} else {
|
|
276
|
-
|
|
294
|
+
t11 = $[29];
|
|
277
295
|
}
|
|
278
|
-
let
|
|
279
|
-
if ($[
|
|
280
|
-
|
|
296
|
+
let t12;
|
|
297
|
+
if ($[30] !== t11 || $[31] !== t7 || $[32] !== value) {
|
|
298
|
+
t12 = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_BottomSheet.BottomSheetContext.Provider, {
|
|
281
299
|
value: value,
|
|
282
|
-
children: [
|
|
300
|
+
children: [t7, t11]
|
|
283
301
|
});
|
|
284
|
-
$[
|
|
285
|
-
$[
|
|
286
|
-
$[
|
|
287
|
-
$[
|
|
302
|
+
$[30] = t11;
|
|
303
|
+
$[31] = t7;
|
|
304
|
+
$[32] = value;
|
|
305
|
+
$[33] = t12;
|
|
288
306
|
} else {
|
|
289
|
-
|
|
307
|
+
t12 = $[33];
|
|
290
308
|
}
|
|
291
|
-
return
|
|
309
|
+
return t12;
|
|
292
310
|
}
|
|
293
311
|
const useQueueIds = () => {
|
|
294
312
|
const $ = (0, _compilerRuntime.c)(2);
|
|
@@ -307,11 +325,7 @@ const useQueueIds = () => {
|
|
|
307
325
|
};
|
|
308
326
|
const BottomSheetHost = exports.BottomSheetHost = BottomSheetHostComp;
|
|
309
327
|
const styles = _reactNative.StyleSheet.create({
|
|
310
|
-
backdropContainer: {
|
|
311
|
-
zIndex: 99_999_999
|
|
312
|
-
},
|
|
313
328
|
container: {
|
|
314
|
-
zIndex: 100_000_000,
|
|
315
329
|
pointerEvents: 'box-none'
|
|
316
330
|
}
|
|
317
331
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_reactNativeReanimated","_interopRequireDefault","_reactNativeSafeAreaContext","_reactNativeTeleport","_shallow","_animatedRegistry","_BottomSheetBackdrop","_BottomSheet","_bottomSheet","_BottomSheetManager","_bottomSheetCoordinator","_useScaleAnimation","_jsxRuntime","e","__esModule","default","PortalHostWrapper","t0","$","_compilerRuntime","c","id","width","height","t1","flex","t2","t3","t4","jsx","PortalHost","name","style","t5","View","children","BottomSheetHostComp","queueIds","useQueueIds","clearAll","useBottomSheetStore","_temp","groupId","scaleConfig","useBottomSheetManagerContext","unsubscribe","initBottomSheetCoordinator","useEffect","QueueItem","map","Fragment","store","state","sheetsById","sheet","useSafeAreaFrame","value","scaleDepth","useScaleDepth","scaleStyle","useScaleAnimatedStyle","cleanupAnimatedIndex","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_reactNativeReanimated","_interopRequireDefault","_reactNativeSafeAreaContext","_reactNativeTeleport","_shallow","_animatedRegistry","_BottomSheetBackdrop","_BottomSheet","_bottomSheet","_BottomSheetManager","_bottomSheetCoordinator","_useScaleAnimation","_jsxRuntime","e","__esModule","default","PortalHostWrapper","t0","$","_compilerRuntime","c","id","width","height","t1","flex","t2","t3","t4","jsx","PortalHost","name","style","t5","View","children","BottomSheetHostComp","queueIds","useQueueIds","clearAll","useBottomSheetStore","_temp","groupId","scaleConfig","useBottomSheetManagerContext","unsubscribe","initBottomSheetCoordinator","useEffect","index","QueueItem","map","Fragment","store","stackIndex","state","sheetsById","sheet","useSafeAreaFrame","value","scaleDepth","useScaleDepth","scaleStyle","useScaleAnimatedStyle","cleanupAnimatedIndex","backdropZIndex","contentZIndex","StyleSheet","absoluteFillObject","zIndex","t6","BottomSheetBackdrop","t7","t8","t9","styles","container","t10","content","usePortal","t11","t12","jsxs","BottomSheetContext","Provider","stackOrder","filter","sheetId","shallow","BottomSheetHost","exports","create","pointerEvents"],"sourceRoot":"../../src","sources":["BottomSheetHost.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -83,7 +83,8 @@ const useBottomSheetStore = exports.useBottomSheetStore = (0, _traditional.creat
|
|
|
83
83
|
content: null,
|
|
84
84
|
status: 'opening',
|
|
85
85
|
usePortal: true,
|
|
86
|
-
scaleBackground: options?.scaleBackground
|
|
86
|
+
scaleBackground: options?.scaleBackground,
|
|
87
|
+
params: options?.params
|
|
87
88
|
}
|
|
88
89
|
},
|
|
89
90
|
stackOrder: [...state.stackOrder, id]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_middleware","require","_traditional","useBottomSheetStore","exports","create","subscribeWithSelector","set","sheetsById","stackOrder","push","sheet","state","id","status","switch","newSheetsById","topId","length","replace","openPortal","groupId","options","content","usePortal","scaleBackground","markOpen","startClosing","index","indexOf","belowId","belowSheet","undefined","finishClosing","newStackOrder","filter","sheetId","topSheet","clearAll"],"sourceRoot":"../../src","sources":["bottomSheet.store.ts"],"mappings":";;;;;;AACA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;
|
|
1
|
+
{"version":3,"names":["_middleware","require","_traditional","useBottomSheetStore","exports","create","subscribeWithSelector","set","sheetsById","stackOrder","push","sheet","state","id","status","switch","newSheetsById","topId","length","replace","openPortal","groupId","options","content","usePortal","scaleBackground","params","markOpen","startClosing","index","indexOf","belowId","belowSheet","undefined","finishClosing","newStackOrder","filter","sheetId","topSheet","clearAll"],"sourceRoot":"../../src","sources":["bottomSheet.store.ts"],"mappings":";;;;;;AACA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAwCO,MAAME,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG,IAAAE,iCAAM,EACvC,IAAAC,iCAAqB,EAAoBC,GAAG,KAAM;EAChDC,UAAU,EAAE,CAAC,CAAC;EACdC,UAAU,EAAE,EAAE;EAEdC,IAAI,EAAGC,KAAK,IACVJ,GAAG,CAAEK,KAAK,IAAK;IACb,IAAIA,KAAK,CAACJ,UAAU,CAACG,KAAK,CAACE,EAAE,CAAC,EAAE;MAC9B,OAAOD,KAAK;IACd;IACA,OAAO;MACLJ,UAAU,EAAE;QACV,GAAGI,KAAK,CAACJ,UAAU;QACnB,CAACG,KAAK,CAACE,EAAE,GAAG;UAAE,GAAGF,KAAK;UAAEG,MAAM,EAAE;QAAU;MAC5C,CAAC;MACDL,UAAU,EAAE,CAAC,GAAGG,KAAK,CAACH,UAAU,EAAEE,KAAK,CAACE,EAAE;IAC5C,CAAC;EACH,CAAC,CAAC;EAEJE,MAAM,EAAGJ,KAAK,IACZJ,GAAG,CAAEK,KAAK,IAAK;IACb,IAAIA,KAAK,CAACJ,UAAU,CAACG,KAAK,CAACE,EAAE,CAAC,EAAE;MAC9B,OAAOD,KAAK;IACd;IAEA,MAAMI,aAAa,GAAG;MAAE,GAAGJ,KAAK,CAACJ;IAAW,CAAC;IAC7C,MAAMS,KAAK,GAAGL,KAAK,CAACH,UAAU,CAACG,KAAK,CAACH,UAAU,CAACS,MAAM,GAAG,CAAC,CAAC;IAE3D,IAAID,KAAK,IAAID,aAAa,CAACC,KAAK,CAAC,EAAE;MACjCD,aAAa,CAACC,KAAK,CAAC,GAAG;QACrB,GAAGD,aAAa,CAACC,KAAK,CAAC;QACvBH,MAAM,EAAE;MACV,CAAC;IACH;IAEAE,aAAa,CAACL,KAAK,CAACE,EAAE,CAAC,GAAG;MAAE,GAAGF,KAAK;MAAEG,MAAM,EAAE;IAAU,CAAC;IAEzD,OAAO;MACLN,UAAU,EAAEQ,aAAa;MACzBP,UAAU,EAAE,CAAC,GAAGG,KAAK,CAACH,UAAU,EAAEE,KAAK,CAACE,EAAE;IAC5C,CAAC;EACH,CAAC,CAAC;EAEJM,OAAO,EAAGR,KAAK,IACbJ,GAAG,CAAEK,KAAK,IAAK;IACb,IAAIA,KAAK,CAACJ,UAAU,CAACG,KAAK,CAACE,EAAE,CAAC,EAAE;MAC9B,OAAOD,KAAK;IACd;IAEA,MAAMI,aAAa,GAAG;MAAE,GAAGJ,KAAK,CAACJ;IAAW,CAAC;IAC7C,MAAMS,KAAK,GAAGL,KAAK,CAACH,UAAU,CAACG,KAAK,CAACH,UAAU,CAACS,MAAM,GAAG,CAAC,CAAC;IAE3D,IAAID,KAAK,IAAID,aAAa,CAACC,KAAK,CAAC,EAAE;MACjCD,aAAa,CAACC,KAAK,CAAC,GAAG;QACrB,GAAGD,aAAa,CAACC,KAAK,CAAC;QACvBH,MAAM,EAAE;MACV,CAAC;IACH;IAEAE,aAAa,CAACL,KAAK,CAACE,EAAE,CAAC,GAAG;MAAE,GAAGF,KAAK;MAAEG,MAAM,EAAE;IAAU,CAAC;IAEzD,OAAO;MACLN,UAAU,EAAEQ,aAAa;MACzBP,UAAU,EAAE,CAAC,GAAGG,KAAK,CAACH,UAAU,EAAEE,KAAK,CAACE,EAAE;IAC5C,CAAC;EACH,CAAC,CAAC;EAEJO,UAAU,EAAEA,CAACP,EAAE,EAAEQ,OAAO,EAAEC,OAAO,KAC/Bf,GAAG,CAAEK,KAAK,IAAK;IACb,IAAIA,KAAK,CAACJ,UAAU,CAACK,EAAE,CAAC,EAAE;MACxB,OAAOD,KAAK;IACd;IACA,OAAO;MACLJ,UAAU,EAAE;QACV,GAAGI,KAAK,CAACJ,UAAU;QACnB,CAACK,EAAE,GAAG;UACJA,EAAE;UACFQ,OAAO;UACPE,OAAO,EAAE,IAAI;UACbT,MAAM,EAAE,SAAS;UACjBU,SAAS,EAAE,IAAI;UACfC,eAAe,EAAEH,OAAO,EAAEG,eAAe;UACzCC,MAAM,EAAEJ,OAAO,EAAEI;QACnB;MACF,CAAC;MACDjB,UAAU,EAAE,CAAC,GAAGG,KAAK,CAACH,UAAU,EAAEI,EAAE;IACtC,CAAC;EACH,CAAC,CAAC;EAEJc,QAAQ,EAAGd,EAAE,IACXN,GAAG,CAAEK,KAAK,IAAK;IACb,MAAMD,KAAK,GAAGC,KAAK,CAACJ,UAAU,CAACK,EAAE,CAAC;IAClC,IAAI,CAACF,KAAK,EAAE;MACV,OAAOC,KAAK;IACd;IACA,OAAO;MACLJ,UAAU,EAAE;QACV,GAAGI,KAAK,CAACJ,UAAU;QACnB,CAACK,EAAE,GAAG;UAAE,GAAGF,KAAK;UAAEG,MAAM,EAAE;QAAO;MACnC;IACF,CAAC;EACH,CAAC,CAAC;EAEJc,YAAY,EAAGf,EAAE,IACfN,GAAG,CAAEK,KAAK,IAAK;IACb,MAAMD,KAAK,GAAGC,KAAK,CAACJ,UAAU,CAACK,EAAE,CAAC;IAClC,IAAI,CAACF,KAAK,IAAIA,KAAK,CAACG,MAAM,KAAK,QAAQ,EAAE;MACvC,OAAOF,KAAK;IACd;IAEA,MAAMI,aAAa,GAAG;MAAE,GAAGJ,KAAK,CAACJ;IAAW,CAAC;IAC7CQ,aAAa,CAACH,EAAE,CAAC,GAAG;MAAE,GAAGF,KAAK;MAAEG,MAAM,EAAE;IAAU,CAAC;IAEnD,MAAMe,KAAK,GAAGjB,KAAK,CAACH,UAAU,CAACqB,OAAO,CAACjB,EAAE,CAAC;IAC1C,MAAMkB,OAAO,GAAGnB,KAAK,CAACH,UAAU,CAACoB,KAAK,GAAG,CAAC,CAAC;IAC3C,MAAMG,UAAU,GAAGD,OAAO,GAAGf,aAAa,CAACe,OAAO,CAAC,GAAGE,SAAS;IAE/D,IAAIF,OAAO,IAAIC,UAAU,IAAIA,UAAU,CAAClB,MAAM,KAAK,QAAQ,EAAE;MAC3DE,aAAa,CAACe,OAAO,CAAC,GAAG;QAAE,GAAGC,UAAU;QAAElB,MAAM,EAAE;MAAU,CAAC;IAC/D;IAEA,OAAO;MAAEN,UAAU,EAAEQ;IAAc,CAAC;EACtC,CAAC,CAAC;EAEJkB,aAAa,EAAGrB,EAAE,IAChBN,GAAG,CAAEK,KAAK,IAAK;IACb,IAAI,CAACA,KAAK,CAACJ,UAAU,CAACK,EAAE,CAAC,EAAE;MACzB,OAAOD,KAAK;IACd;IAEA,MAAMI,aAAa,GAAG;MAAE,GAAGJ,KAAK,CAACJ;IAAW,CAAC;IAC7C,OAAOQ,aAAa,CAACH,EAAE,CAAC;IAExB,MAAMsB,aAAa,GAAGvB,KAAK,CAACH,UAAU,CAAC2B,MAAM,CAC1CC,OAAO,IAAKA,OAAO,KAAKxB,EAC3B,CAAC;IAED,MAAMI,KAAK,GAAGkB,aAAa,CAACA,aAAa,CAACjB,MAAM,GAAG,CAAC,CAAC;IACrD,MAAMoB,QAAQ,GAAGrB,KAAK,GAAGD,aAAa,CAACC,KAAK,CAAC,GAAGgB,SAAS;IAEzD,IAAIhB,KAAK,IAAIqB,QAAQ,IAAIA,QAAQ,CAACxB,MAAM,KAAK,QAAQ,EAAE;MACrDE,aAAa,CAACC,KAAK,CAAC,GAAG;QAAE,GAAGqB,QAAQ;QAAExB,MAAM,EAAE;MAAU,CAAC;IAC3D;IAEA,OAAO;MACLN,UAAU,EAAEQ,aAAa;MACzBP,UAAU,EAAE0B;IACd,CAAC;EACH,CAAC,CAAC;EAEJI,QAAQ,EAAEA,CAAA,KAAMhC,GAAG,CAAC,OAAO;IAAEC,UAAU,EAAE,CAAC,CAAC;IAAEC,UAAU,EAAE;EAAG,CAAC,CAAC;AAChE,CAAC,CAAC,CACJ,CAAC","ignoreList":[]}
|
|
@@ -54,23 +54,24 @@ function useBottomSheetControl(id) {
|
|
|
54
54
|
const close = t2;
|
|
55
55
|
const status = sheetState?.status ?? null;
|
|
56
56
|
const isOpen = status === "open" || status === "opening";
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
57
|
+
const t3 = open;
|
|
58
|
+
let t4;
|
|
59
|
+
if ($[9] !== close || $[10] !== isOpen || $[11] !== status || $[12] !== t3) {
|
|
60
|
+
t4 = {
|
|
61
|
+
open: t3,
|
|
61
62
|
close,
|
|
62
63
|
isOpen,
|
|
63
64
|
status
|
|
64
65
|
};
|
|
65
66
|
$[9] = close;
|
|
66
67
|
$[10] = isOpen;
|
|
67
|
-
$[11] =
|
|
68
|
-
$[12] =
|
|
69
|
-
$[13] =
|
|
68
|
+
$[11] = status;
|
|
69
|
+
$[12] = t3;
|
|
70
|
+
$[13] = t4;
|
|
70
71
|
} else {
|
|
71
|
-
|
|
72
|
+
t4 = $[13];
|
|
72
73
|
}
|
|
73
|
-
return
|
|
74
|
+
return t4;
|
|
74
75
|
}
|
|
75
76
|
function _temp2(state_0) {
|
|
76
77
|
return state_0.startClosing;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_bottomSheet","_BottomSheetManager","_refsMap","e","__esModule","default","useBottomSheetControl","id","$","_compilerRuntime","c","bottomSheetManagerContext","useMaybeBottomSheetManagerContext","openPortal","useBottomSheetStore","_temp","startClosing","_temp2","t0","state_1","state","sheetsById","sheetState","t1","groupId","options","ref","React","createRef","sheetRefs","open","t2","close","status","isOpen","t3","state_0"],"sourceRoot":"../../src","sources":["useBottomSheetControl.ts"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,YAAA,GAAAD,OAAA;AAKA,IAAAE,mBAAA,GAAAF,OAAA;
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_bottomSheet","_BottomSheetManager","_refsMap","e","__esModule","default","useBottomSheetControl","id","$","_compilerRuntime","c","bottomSheetManagerContext","useMaybeBottomSheetManagerContext","openPortal","useBottomSheetStore","_temp","startClosing","_temp2","t0","state_1","state","sheetsById","sheetState","t1","groupId","options","ref","React","createRef","sheetRefs","open","t2","close","status","isOpen","t3","t4","state_0"],"sourceRoot":"../../src","sources":["useBottomSheetControl.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,8 +7,10 @@ exports.useBottomSheetState = useBottomSheetState;
|
|
|
7
7
|
var _compilerRuntime = require("react/compiler-runtime");
|
|
8
8
|
var _BottomSheet = require("./BottomSheet.context");
|
|
9
9
|
var _bottomSheet = require("./bottomSheet.store");
|
|
10
|
+
// Marker type to detect when no generic is provided
|
|
11
|
+
|
|
10
12
|
function useBottomSheetState() {
|
|
11
|
-
const $ = (0, _compilerRuntime.c)(
|
|
13
|
+
const $ = (0, _compilerRuntime.c)(9);
|
|
12
14
|
const context = (0, _BottomSheet.useMaybeBottomSheetContext)();
|
|
13
15
|
let t0;
|
|
14
16
|
if ($[0] !== context?.id) {
|
|
@@ -24,29 +26,32 @@ function useBottomSheetState() {
|
|
|
24
26
|
throw new Error("useBottomSheetState must be used within a BottomSheetProvider");
|
|
25
27
|
}
|
|
26
28
|
let t1;
|
|
27
|
-
if ($[2] !== bottomSheetState || $[3] !== startClosing) {
|
|
29
|
+
if ($[2] !== bottomSheetState.id || $[3] !== startClosing) {
|
|
28
30
|
t1 = () => startClosing(bottomSheetState.id);
|
|
29
|
-
$[2] = bottomSheetState;
|
|
31
|
+
$[2] = bottomSheetState.id;
|
|
30
32
|
$[3] = startClosing;
|
|
31
33
|
$[4] = t1;
|
|
32
34
|
} else {
|
|
33
35
|
t1 = $[4];
|
|
34
36
|
}
|
|
35
37
|
const close = t1;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
const t2 = bottomSheetState.params;
|
|
39
|
+
let t3;
|
|
40
|
+
if ($[5] !== bottomSheetState || $[6] !== close || $[7] !== t2) {
|
|
41
|
+
t3 = {
|
|
39
42
|
bottomSheetState,
|
|
43
|
+
params: t2,
|
|
40
44
|
close,
|
|
41
45
|
closeBottomSheet: close
|
|
42
46
|
};
|
|
43
47
|
$[5] = bottomSheetState;
|
|
44
48
|
$[6] = close;
|
|
45
49
|
$[7] = t2;
|
|
50
|
+
$[8] = t3;
|
|
46
51
|
} else {
|
|
47
|
-
|
|
52
|
+
t3 = $[8];
|
|
48
53
|
}
|
|
49
|
-
return
|
|
54
|
+
return t3;
|
|
50
55
|
}
|
|
51
56
|
function _temp(state_0) {
|
|
52
57
|
return state_0.startClosing;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_BottomSheet","require","_bottomSheet","useBottomSheetState","$","_compilerRuntime","c","context","useMaybeBottomSheetContext","t0","id","state","sheetsById","bottomSheetState","useBottomSheetStore","startClosing","_temp","Error","t1","close","t2","closeBottomSheet","state_0"],"sourceRoot":"../../src","sources":["useBottomSheetState.ts"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;
|
|
1
|
+
{"version":3,"names":["_BottomSheet","require","_bottomSheet","useBottomSheetState","$","_compilerRuntime","c","context","useMaybeBottomSheetContext","t0","id","state","sheetsById","bottomSheetState","useBottomSheetStore","startClosing","_temp","Error","t1","close","t2","params","t3","closeBottomSheet","state_0"],"sourceRoot":"../../src","sources":["useBottomSheetState.ts"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AASA;;AAiBO,SAAAE,oBAAA;EAAA,MAAAC,CAAA,OAAAC,gBAAA,CAAAC,CAAA;EAGL,MAAAC,OAAA,GAAgB,IAAAC,uCAA0B,EAAC,CAAC;EAAC,IAAAC,EAAA;EAAA,IAAAL,CAAA,QAAAG,OAAA,EAAAG,EAAA;IAG3CD,EAAA,GAAAE,KAAA,IAAWA,KAAK,CAAAC,UAAW,CAACL,OAAO,EAAAG,EAAI,CAAE;IAAAN,CAAA,MAAAG,OAAA,EAAAG,EAAA;IAAAN,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EAD3C,MAAAS,gBAAA,GAAyB,IAAAC,gCAAmB,EAC1CL,EACF,CAAC;EAED,MAAAM,YAAA,GAAqB,IAAAD,gCAAmB,EAACE,KAA6B,CAAC;EAEvE,IAAI,CAACH,gBAAgB;IACnB,MAAM,IAAII,KAAK,CACb,+DACF,CAAC;EAAC;EACH,IAAAC,EAAA;EAAA,IAAAd,CAAA,QAAAS,gBAAA,CAAAH,EAAA,IAAAN,CAAA,QAAAW,YAAA;IAEaG,EAAA,GAAAA,CAAA,KAAMH,YAAY,CAACF,gBAAgB,CAAAH,EAAG,CAAC;IAAAN,CAAA,MAAAS,gBAAA,CAAAH,EAAA;IAAAN,CAAA,MAAAW,YAAA;IAAAX,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAArD,MAAAe,KAAA,GAAcD,EAAuC;EAI3C,MAAAE,EAAA,GAAAP,gBAAgB,CAAAQ,MAAO;EAAoB,IAAAC,EAAA;EAAA,IAAAlB,CAAA,QAAAS,gBAAA,IAAAT,CAAA,QAAAe,KAAA,IAAAf,CAAA,QAAAgB,EAAA;IAF9CE,EAAA;MAAAT,gBAAA;MAAAQ,MAAA,EAEGD,EAA2C;MAAAD,KAAA;MAAAI,gBAAA,EAEjCJ;IACpB,CAAC;IAAAf,CAAA,MAAAS,gBAAA;IAAAT,CAAA,MAAAe,KAAA;IAAAf,CAAA,MAAAgB,EAAA;IAAAhB,CAAA,MAAAkB,EAAA;EAAA;IAAAA,EAAA,GAAAlB,CAAA;EAAA;EAAA,OALMkB,EAKN;AAAA;AAxBI,SAAAN,MAAAQ,OAAA;EAAA,OAS+Cb,OAAK,CAAAI,YAAa;AAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomSheetHost.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetHost.tsx"],"names":[],"mappings":"AAmCA,iBAAS,mBAAmB,
|
|
1
|
+
{"version":3,"file":"BottomSheetHost.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetHost.tsx"],"names":[],"mappings":"AAmCA,iBAAS,mBAAmB,4CAgC3B;AAmED,eAAO,MAAM,eAAe,4BAAsB,CAAC"}
|
|
@@ -8,14 +8,16 @@ export interface BottomSheetState {
|
|
|
8
8
|
status: BottomSheetStatus;
|
|
9
9
|
scaleBackground?: boolean;
|
|
10
10
|
usePortal?: boolean;
|
|
11
|
+
params?: Record<string, unknown>;
|
|
11
12
|
}
|
|
12
13
|
type TriggerState = Omit<BottomSheetState, 'status'>;
|
|
13
14
|
interface BottomSheetStoreState {
|
|
14
15
|
sheetsById: Record<string, BottomSheetState>;
|
|
15
16
|
stackOrder: string[];
|
|
16
17
|
}
|
|
17
|
-
export interface PortalOpenOptions {
|
|
18
|
+
export interface PortalOpenOptions<TParams = Record<string, unknown>> {
|
|
18
19
|
scaleBackground?: boolean;
|
|
20
|
+
params?: TParams;
|
|
19
21
|
}
|
|
20
22
|
interface BottomSheetStoreActions {
|
|
21
23
|
push(sheet: TriggerState): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bottomSheet.store.d.ts","sourceRoot":"","sources":["../../../src/bottomSheet.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC1E,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAErD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"bottomSheet.store.d.ts","sourceRoot":"","sources":["../../../src/bottomSheet.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC1E,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAErD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,KAAK,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;AAErD,UAAU,qBAAqB;IAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC7C,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAClE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,uBAAuB;IAC/B,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAChC,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC3E,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,IAAI,IAAI,CAAC;CAClB;AAED,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG,uBAAuB,CAAC;AAE/E,eAAO,MAAM,mBAAmB;;;;;;;;EAwJ/B,CAAC"}
|
|
@@ -7,5 +7,5 @@ export { BottomSheetScaleView } from './BottomSheetScaleView';
|
|
|
7
7
|
export { type ScaleConfig } from './useScaleAnimation';
|
|
8
8
|
export { BottomSheetPortal } from './BottomSheetPortal';
|
|
9
9
|
export { useBottomSheetControl } from './useBottomSheetControl';
|
|
10
|
-
export type { BottomSheetPortalRegistry, BottomSheetPortalId, } from './portal.types';
|
|
10
|
+
export type { BottomSheetPortalRegistry, BottomSheetPortalId, BottomSheetPortalParams, } from './portal.types';
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EACV,yBAAyB,EACzB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EACV,yBAAyB,EACzB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Registry for portal-based bottom sheets.
|
|
3
|
-
* Augment this interface in your app to get type-safe sheet IDs:
|
|
3
|
+
* Augment this interface in your app to get type-safe sheet IDs and params:
|
|
4
4
|
*
|
|
5
5
|
* @example
|
|
6
6
|
* ```tsx
|
|
7
7
|
* declare module 'react-native-bottom-sheet-stack' {
|
|
8
8
|
* interface BottomSheetPortalRegistry {
|
|
9
|
-
* '
|
|
10
|
-
* '
|
|
11
|
-
* '
|
|
9
|
+
* 'simple-sheet': true; // no params
|
|
10
|
+
* 'user-sheet': { userId: string }; // with params
|
|
11
|
+
* 'settings-sheet': { theme: 'light' | 'dark'; notifications: boolean };
|
|
12
12
|
* }
|
|
13
13
|
* }
|
|
14
14
|
* ```
|
|
@@ -21,4 +21,13 @@ export interface BottomSheetPortalRegistry {
|
|
|
21
21
|
* Otherwise, it falls back to `string` for flexibility.
|
|
22
22
|
*/
|
|
23
23
|
export type BottomSheetPortalId = keyof BottomSheetPortalRegistry extends never ? string : Extract<keyof BottomSheetPortalRegistry, string>;
|
|
24
|
+
/**
|
|
25
|
+
* Extract params type for a given portal sheet ID.
|
|
26
|
+
* Returns `undefined` if the sheet has no params (value is `true`).
|
|
27
|
+
*/
|
|
28
|
+
export type BottomSheetPortalParams<T extends BottomSheetPortalId> = keyof BottomSheetPortalRegistry extends never ? Record<string, unknown> | undefined : T extends keyof BottomSheetPortalRegistry ? BottomSheetPortalRegistry[T] extends true ? undefined : BottomSheetPortalRegistry[T] : Record<string, unknown> | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Check if a portal sheet has params defined.
|
|
31
|
+
*/
|
|
32
|
+
export type HasParams<T extends BottomSheetPortalId> = keyof BottomSheetPortalRegistry extends never ? false : T extends keyof BottomSheetPortalRegistry ? BottomSheetPortalRegistry[T] extends true ? false : true : false;
|
|
24
33
|
//# sourceMappingURL=portal.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal.types.d.ts","sourceRoot":"","sources":["../../../src/portal.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,yBAAyB;CAAG;AAE7C;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,yBAAyB,SAAS,KAAK,GAC3E,MAAM,GACN,OAAO,CAAC,MAAM,yBAAyB,EAAE,MAAM,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"portal.types.d.ts","sourceRoot":"","sources":["../../../src/portal.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,yBAAyB;CAAG;AAE7C;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,yBAAyB,SAAS,KAAK,GAC3E,MAAM,GACN,OAAO,CAAC,MAAM,yBAAyB,EAAE,MAAM,CAAC,CAAC;AAErD;;;GAGG;AACH,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,mBAAmB,IAC/D,MAAM,yBAAyB,SAAS,KAAK,GACzC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACnC,CAAC,SAAS,MAAM,yBAAyB,GACvC,yBAAyB,CAAC,CAAC,CAAC,SAAS,IAAI,GACvC,SAAS,GACT,yBAAyB,CAAC,CAAC,CAAC,GAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,mBAAmB,IACjD,MAAM,yBAAyB,SAAS,KAAK,GACzC,KAAK,GACL,CAAC,SAAS,MAAM,yBAAyB,GACvC,yBAAyB,CAAC,CAAC,CAAC,SAAS,IAAI,GACvC,KAAK,GACL,IAAI,GACN,KAAK,CAAC"}
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import { type BottomSheetStatus, type PortalOpenOptions } from './bottomSheet.store';
|
|
2
|
-
import type { BottomSheetPortalId } from './portal.types';
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import type { BottomSheetPortalId, BottomSheetPortalParams, HasParams } from './portal.types';
|
|
3
|
+
type OpenOptions<T extends BottomSheetPortalId> = Omit<PortalOpenOptions<BottomSheetPortalParams<T>>, 'params'> & (HasParams<T> extends true ? {
|
|
4
|
+
params: BottomSheetPortalParams<T>;
|
|
5
|
+
} : {
|
|
6
|
+
params?: BottomSheetPortalParams<T>;
|
|
7
|
+
});
|
|
8
|
+
type OpenFunction<T extends BottomSheetPortalId> = HasParams<T> extends true ? (options: OpenOptions<T>) => void : (options?: OpenOptions<T>) => void;
|
|
9
|
+
export interface UseBottomSheetControlReturn<T extends BottomSheetPortalId> {
|
|
10
|
+
open: OpenFunction<T>;
|
|
5
11
|
close: () => void;
|
|
6
12
|
isOpen: boolean;
|
|
7
13
|
status: BottomSheetStatus | null;
|
|
8
14
|
}
|
|
9
|
-
export declare function useBottomSheetControl(id:
|
|
15
|
+
export declare function useBottomSheetControl<T extends BottomSheetPortalId>(id: T): UseBottomSheetControlReturn<T>;
|
|
16
|
+
export {};
|
|
10
17
|
//# sourceMappingURL=useBottomSheetControl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBottomSheetControl.d.ts","sourceRoot":"","sources":["../../../src/useBottomSheetControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"useBottomSheetControl.d.ts","sourceRoot":"","sources":["../../../src/useBottomSheetControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EACvB,SAAS,EACV,MAAM,gBAAgB,CAAC;AAGxB,KAAK,WAAW,CAAC,CAAC,SAAS,mBAAmB,IAAI,IAAI,CACpD,iBAAiB,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAC7C,QAAQ,CACT,GACC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,GACtB;IAAE,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAA;CAAE,GACtC;IAAE,MAAM,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,CAAC;AAE/C,KAAK,YAAY,CAAC,CAAC,SAAS,mBAAmB,IAC7C,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,GACrB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,GACjC,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AAEzC,MAAM,WAAW,2BAA2B,CAAC,CAAC,SAAS,mBAAmB;IACxE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACtB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAClC;AAED,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,mBAAmB,EACjE,EAAE,EAAE,CAAC,GACJ,2BAA2B,CAAC,CAAC,CAAC,CA8BhC"}
|
|
@@ -15,6 +15,7 @@ export declare const useBottomSheetManager: () => {
|
|
|
15
15
|
content: React.ReactNode;
|
|
16
16
|
scaleBackground?: boolean | undefined;
|
|
17
17
|
usePortal?: boolean | undefined;
|
|
18
|
+
params?: Record<string, unknown> | undefined;
|
|
18
19
|
}) => void;
|
|
19
20
|
replaceBottomSheet: (sheet: {
|
|
20
21
|
groupId: string;
|
|
@@ -22,6 +23,7 @@ export declare const useBottomSheetManager: () => {
|
|
|
22
23
|
content: React.ReactNode;
|
|
23
24
|
scaleBackground?: boolean | undefined;
|
|
24
25
|
usePortal?: boolean | undefined;
|
|
26
|
+
params?: Record<string, unknown> | undefined;
|
|
25
27
|
}) => void;
|
|
26
28
|
};
|
|
27
29
|
//# sourceMappingURL=useBottomSheetManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBottomSheetManager.d.ts","sourceRoot":"","sources":["../../../src/useBottomSheetManager.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAuB,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAMzE,eAAO,MAAM,qBAAqB;;gBA0Db,MAAM;+BArCd,KAAK,CAAC,YAAY,YAClB;QACP,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,QAAQ,CAAC;QAChB,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B
|
|
1
|
+
{"version":3,"file":"useBottomSheetManager.d.ts","sourceRoot":"","sources":["../../../src/useBottomSheetManager.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAuB,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAMzE,eAAO,MAAM,qBAAqB;;gBA0Db,MAAM;+BArCd,KAAK,CAAC,YAAY,YAClB;QACP,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,QAAQ,CAAC;QAChB,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B;;;;;;;;;;;;;;;;;CA8CJ,CAAC"}
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import { type BottomSheetState } from './bottomSheet.store';
|
|
2
|
-
|
|
2
|
+
import type { BottomSheetPortalId, BottomSheetPortalParams } from './portal.types';
|
|
3
|
+
declare const UNSPECIFIED: unique symbol;
|
|
4
|
+
type Unspecified = typeof UNSPECIFIED;
|
|
5
|
+
type ResolveParams<T> = T extends Unspecified ? unknown : T extends BottomSheetPortalId ? BottomSheetPortalParams<T> : unknown;
|
|
6
|
+
export interface UseBottomSheetStateReturn<T> {
|
|
3
7
|
bottomSheetState: BottomSheetState;
|
|
8
|
+
params: ResolveParams<T>;
|
|
4
9
|
close: () => void;
|
|
5
10
|
closeBottomSheet: () => void;
|
|
6
|
-
}
|
|
11
|
+
}
|
|
12
|
+
export declare function useBottomSheetState<T extends BottomSheetPortalId | Unspecified = Unspecified>(): UseBottomSheetStateReturn<T>;
|
|
13
|
+
export {};
|
|
7
14
|
//# sourceMappingURL=useBottomSheetState.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBottomSheetState.d.ts","sourceRoot":"","sources":["../../../src/useBottomSheetState.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"useBottomSheetState.d.ts","sourceRoot":"","sources":["../../../src/useBottomSheetState.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,CAAC,MAAM,WAAW,EAAE,OAAO,MAAM,CAAC;AACzC,KAAK,WAAW,GAAG,OAAO,WAAW,CAAC;AAEtC,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,GACzC,OAAO,GACP,CAAC,SAAS,mBAAmB,GAC3B,uBAAuB,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC;AAEd,MAAM,WAAW,yBAAyB,CAAC,CAAC;IAC1C,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IACzB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED,wBAAgB,mBAAmB,CACjC,CAAC,SAAS,mBAAmB,GAAG,WAAW,GAAG,WAAW,KACtD,yBAAyB,CAAC,CAAC,CAAC,CAuBhC"}
|
package/package.json
CHANGED
package/src/BottomSheetHost.tsx
CHANGED
|
@@ -54,12 +54,13 @@ function BottomSheetHostComp() {
|
|
|
54
54
|
|
|
55
55
|
return (
|
|
56
56
|
<>
|
|
57
|
-
{queueIds.map((id) => (
|
|
57
|
+
{queueIds.map((id, index) => (
|
|
58
58
|
<QueueItem
|
|
59
59
|
key={id}
|
|
60
60
|
id={id}
|
|
61
61
|
groupId={groupId}
|
|
62
62
|
scaleConfig={scaleConfig}
|
|
63
|
+
stackIndex={index}
|
|
63
64
|
/>
|
|
64
65
|
))}
|
|
65
66
|
</>
|
|
@@ -70,10 +71,12 @@ function QueueItem({
|
|
|
70
71
|
id,
|
|
71
72
|
groupId,
|
|
72
73
|
scaleConfig,
|
|
74
|
+
stackIndex,
|
|
73
75
|
}: {
|
|
74
76
|
id: string;
|
|
75
77
|
groupId: string;
|
|
76
78
|
scaleConfig?: ScaleConfig;
|
|
79
|
+
stackIndex: number;
|
|
77
80
|
}) {
|
|
78
81
|
const sheet = useBottomSheetStore((state) => state.sheetsById[id]);
|
|
79
82
|
|
|
@@ -83,17 +86,18 @@ function QueueItem({
|
|
|
83
86
|
const scaleDepth = useScaleDepth(groupId, id);
|
|
84
87
|
const scaleStyle = useScaleAnimatedStyle(scaleDepth, scaleConfig);
|
|
85
88
|
|
|
86
|
-
// Cleanup animated index when sheet is unmounted
|
|
87
89
|
useEffect(() => {
|
|
88
90
|
return () => {
|
|
89
91
|
cleanupAnimatedIndex(id);
|
|
90
92
|
};
|
|
91
93
|
}, [id]);
|
|
92
94
|
|
|
95
|
+
const backdropZIndex = stackIndex * 2;
|
|
96
|
+
const contentZIndex = stackIndex * 2 + 1;
|
|
97
|
+
|
|
93
98
|
return (
|
|
94
99
|
<BottomSheetContext.Provider value={value}>
|
|
95
|
-
{
|
|
96
|
-
<View style={[StyleSheet.absoluteFillObject, styles.backdropContainer]}>
|
|
100
|
+
<View style={[StyleSheet.absoluteFillObject, { zIndex: backdropZIndex }]}>
|
|
97
101
|
<BottomSheetBackdrop sheetId={id} />
|
|
98
102
|
</View>
|
|
99
103
|
|
|
@@ -102,7 +106,7 @@ function QueueItem({
|
|
|
102
106
|
style={[
|
|
103
107
|
StyleSheet.absoluteFillObject,
|
|
104
108
|
styles.container,
|
|
105
|
-
{ width, height },
|
|
109
|
+
{ width, height, zIndex: contentZIndex },
|
|
106
110
|
scaleStyle,
|
|
107
111
|
]}
|
|
108
112
|
>
|
|
@@ -131,11 +135,7 @@ const useQueueIds = () => {
|
|
|
131
135
|
export const BottomSheetHost = BottomSheetHostComp;
|
|
132
136
|
|
|
133
137
|
const styles = StyleSheet.create({
|
|
134
|
-
backdropContainer: {
|
|
135
|
-
zIndex: 99_999_999,
|
|
136
|
-
},
|
|
137
138
|
container: {
|
|
138
|
-
zIndex: 100_000_000,
|
|
139
139
|
pointerEvents: 'box-none',
|
|
140
140
|
},
|
|
141
141
|
});
|
package/src/bottomSheet.store.ts
CHANGED
|
@@ -12,6 +12,7 @@ export interface BottomSheetState {
|
|
|
12
12
|
status: BottomSheetStatus;
|
|
13
13
|
scaleBackground?: boolean;
|
|
14
14
|
usePortal?: boolean;
|
|
15
|
+
params?: Record<string, unknown>;
|
|
15
16
|
}
|
|
16
17
|
|
|
17
18
|
type TriggerState = Omit<BottomSheetState, 'status'>;
|
|
@@ -21,8 +22,9 @@ interface BottomSheetStoreState {
|
|
|
21
22
|
stackOrder: string[];
|
|
22
23
|
}
|
|
23
24
|
|
|
24
|
-
export interface PortalOpenOptions {
|
|
25
|
+
export interface PortalOpenOptions<TParams = Record<string, unknown>> {
|
|
25
26
|
scaleBackground?: boolean;
|
|
27
|
+
params?: TParams;
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
interface BottomSheetStoreActions {
|
|
@@ -120,6 +122,7 @@ export const useBottomSheetStore = create(
|
|
|
120
122
|
status: 'opening',
|
|
121
123
|
usePortal: true,
|
|
122
124
|
scaleBackground: options?.scaleBackground,
|
|
125
|
+
params: options?.params,
|
|
123
126
|
},
|
|
124
127
|
},
|
|
125
128
|
stackOrder: [...state.stackOrder, id],
|
package/src/index.tsx
CHANGED
package/src/portal.types.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Registry for portal-based bottom sheets.
|
|
3
|
-
* Augment this interface in your app to get type-safe sheet IDs:
|
|
3
|
+
* Augment this interface in your app to get type-safe sheet IDs and params:
|
|
4
4
|
*
|
|
5
5
|
* @example
|
|
6
6
|
* ```tsx
|
|
7
7
|
* declare module 'react-native-bottom-sheet-stack' {
|
|
8
8
|
* interface BottomSheetPortalRegistry {
|
|
9
|
-
* '
|
|
10
|
-
* '
|
|
11
|
-
* '
|
|
9
|
+
* 'simple-sheet': true; // no params
|
|
10
|
+
* 'user-sheet': { userId: string }; // with params
|
|
11
|
+
* 'settings-sheet': { theme: 'light' | 'dark'; notifications: boolean };
|
|
12
12
|
* }
|
|
13
13
|
* }
|
|
14
14
|
* ```
|
|
@@ -23,3 +23,28 @@ export interface BottomSheetPortalRegistry {}
|
|
|
23
23
|
export type BottomSheetPortalId = keyof BottomSheetPortalRegistry extends never
|
|
24
24
|
? string
|
|
25
25
|
: Extract<keyof BottomSheetPortalRegistry, string>;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Extract params type for a given portal sheet ID.
|
|
29
|
+
* Returns `undefined` if the sheet has no params (value is `true`).
|
|
30
|
+
*/
|
|
31
|
+
export type BottomSheetPortalParams<T extends BottomSheetPortalId> =
|
|
32
|
+
keyof BottomSheetPortalRegistry extends never
|
|
33
|
+
? Record<string, unknown> | undefined
|
|
34
|
+
: T extends keyof BottomSheetPortalRegistry
|
|
35
|
+
? BottomSheetPortalRegistry[T] extends true
|
|
36
|
+
? undefined
|
|
37
|
+
: BottomSheetPortalRegistry[T]
|
|
38
|
+
: Record<string, unknown> | undefined;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Check if a portal sheet has params defined.
|
|
42
|
+
*/
|
|
43
|
+
export type HasParams<T extends BottomSheetPortalId> =
|
|
44
|
+
keyof BottomSheetPortalRegistry extends never
|
|
45
|
+
? false
|
|
46
|
+
: T extends keyof BottomSheetPortalRegistry
|
|
47
|
+
? BottomSheetPortalRegistry[T] extends true
|
|
48
|
+
? false
|
|
49
|
+
: true
|
|
50
|
+
: false;
|
|
@@ -7,26 +7,43 @@ import {
|
|
|
7
7
|
type PortalOpenOptions,
|
|
8
8
|
} from './bottomSheet.store';
|
|
9
9
|
import { useMaybeBottomSheetManagerContext } from './BottomSheetManager.provider';
|
|
10
|
-
import type {
|
|
10
|
+
import type {
|
|
11
|
+
BottomSheetPortalId,
|
|
12
|
+
BottomSheetPortalParams,
|
|
13
|
+
HasParams,
|
|
14
|
+
} from './portal.types';
|
|
11
15
|
import { sheetRefs } from './refsMap';
|
|
12
16
|
|
|
13
|
-
|
|
14
|
-
|
|
17
|
+
type OpenOptions<T extends BottomSheetPortalId> = Omit<
|
|
18
|
+
PortalOpenOptions<BottomSheetPortalParams<T>>,
|
|
19
|
+
'params'
|
|
20
|
+
> &
|
|
21
|
+
(HasParams<T> extends true
|
|
22
|
+
? { params: BottomSheetPortalParams<T> }
|
|
23
|
+
: { params?: BottomSheetPortalParams<T> });
|
|
24
|
+
|
|
25
|
+
type OpenFunction<T extends BottomSheetPortalId> =
|
|
26
|
+
HasParams<T> extends true
|
|
27
|
+
? (options: OpenOptions<T>) => void
|
|
28
|
+
: (options?: OpenOptions<T>) => void;
|
|
29
|
+
|
|
30
|
+
export interface UseBottomSheetControlReturn<T extends BottomSheetPortalId> {
|
|
31
|
+
open: OpenFunction<T>;
|
|
15
32
|
close: () => void;
|
|
16
33
|
isOpen: boolean;
|
|
17
34
|
status: BottomSheetStatus | null;
|
|
18
35
|
}
|
|
19
36
|
|
|
20
|
-
export function useBottomSheetControl(
|
|
21
|
-
id:
|
|
22
|
-
): UseBottomSheetControlReturn {
|
|
37
|
+
export function useBottomSheetControl<T extends BottomSheetPortalId>(
|
|
38
|
+
id: T
|
|
39
|
+
): UseBottomSheetControlReturn<T> {
|
|
23
40
|
const bottomSheetManagerContext = useMaybeBottomSheetManagerContext();
|
|
24
41
|
|
|
25
42
|
const openPortal = useBottomSheetStore((state) => state.openPortal);
|
|
26
43
|
const startClosing = useBottomSheetStore((state) => state.startClosing);
|
|
27
44
|
const sheetState = useBottomSheetStore((state) => state.sheetsById[id]);
|
|
28
45
|
|
|
29
|
-
const open = (options?:
|
|
46
|
+
const open = (options?: OpenOptions<T>) => {
|
|
30
47
|
const groupId = bottomSheetManagerContext?.groupId || 'default';
|
|
31
48
|
|
|
32
49
|
// Create ref when opening (same pattern as useBottomSheetManager)
|
|
@@ -44,7 +61,7 @@ export function useBottomSheetControl(
|
|
|
44
61
|
const isOpen = status === 'open' || status === 'opening';
|
|
45
62
|
|
|
46
63
|
return {
|
|
47
|
-
open
|
|
64
|
+
open: open as OpenFunction<T>,
|
|
48
65
|
close,
|
|
49
66
|
isOpen,
|
|
50
67
|
status,
|
|
@@ -3,12 +3,31 @@ import {
|
|
|
3
3
|
useBottomSheetStore,
|
|
4
4
|
type BottomSheetState,
|
|
5
5
|
} from './bottomSheet.store';
|
|
6
|
+
import type {
|
|
7
|
+
BottomSheetPortalId,
|
|
8
|
+
BottomSheetPortalParams,
|
|
9
|
+
} from './portal.types';
|
|
6
10
|
|
|
7
|
-
|
|
11
|
+
// Marker type to detect when no generic is provided
|
|
12
|
+
declare const UNSPECIFIED: unique symbol;
|
|
13
|
+
type Unspecified = typeof UNSPECIFIED;
|
|
14
|
+
|
|
15
|
+
type ResolveParams<T> = T extends Unspecified
|
|
16
|
+
? unknown
|
|
17
|
+
: T extends BottomSheetPortalId
|
|
18
|
+
? BottomSheetPortalParams<T>
|
|
19
|
+
: unknown;
|
|
20
|
+
|
|
21
|
+
export interface UseBottomSheetStateReturn<T> {
|
|
8
22
|
bottomSheetState: BottomSheetState;
|
|
23
|
+
params: ResolveParams<T>;
|
|
9
24
|
close: () => void;
|
|
10
25
|
closeBottomSheet: () => void;
|
|
11
|
-
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export function useBottomSheetState<
|
|
29
|
+
T extends BottomSheetPortalId | Unspecified = Unspecified,
|
|
30
|
+
>(): UseBottomSheetStateReturn<T> {
|
|
12
31
|
const context = useMaybeBottomSheetContext();
|
|
13
32
|
|
|
14
33
|
const bottomSheetState = useBottomSheetStore(
|
|
@@ -27,6 +46,7 @@ export function useBottomSheetState(): {
|
|
|
27
46
|
|
|
28
47
|
return {
|
|
29
48
|
bottomSheetState,
|
|
49
|
+
params: bottomSheetState.params as ResolveParams<T>,
|
|
30
50
|
close,
|
|
31
51
|
closeBottomSheet: close,
|
|
32
52
|
};
|