react-native-bottom-sheet-stack 1.5.0 → 1.5.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.
- package/README.md +39 -296
- package/lib/commonjs/BottomSheetHost.js +29 -26
- package/lib/commonjs/BottomSheetHost.js.map +1 -1
- package/lib/commonjs/BottomSheetManaged.js +2 -2
- package/lib/commonjs/BottomSheetManaged.js.map +1 -1
- package/lib/commonjs/BottomSheetPortal.js +2 -3
- package/lib/commonjs/BottomSheetPortal.js.map +1 -1
- package/lib/commonjs/bottomSheet.store.js +16 -0
- package/lib/commonjs/bottomSheet.store.js.map +1 -1
- package/lib/commonjs/bottomSheetCoordinator.js +2 -2
- package/lib/commonjs/bottomSheetCoordinator.js.map +1 -1
- package/lib/commonjs/index.js +18 -5
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/refsMap.js +13 -2
- package/lib/commonjs/refsMap.js.map +1 -1
- package/lib/commonjs/{useBottomSheetState.js → useBottomSheetContext.js} +13 -5
- package/lib/commonjs/useBottomSheetContext.js.map +1 -0
- package/lib/commonjs/useBottomSheetControl.js +47 -62
- package/lib/commonjs/useBottomSheetControl.js.map +1 -1
- package/lib/commonjs/useBottomSheetManager.js +22 -18
- package/lib/commonjs/useBottomSheetManager.js.map +1 -1
- package/lib/commonjs/useBottomSheetStatus.js +35 -0
- package/lib/commonjs/useBottomSheetStatus.js.map +1 -0
- package/lib/typescript/src/BottomSheetHost.d.ts.map +1 -1
- package/lib/typescript/src/BottomSheetPortal.d.ts.map +1 -1
- package/lib/typescript/src/bottomSheet.store.d.ts +1 -0
- package/lib/typescript/src/bottomSheet.store.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +8 -6
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/refsMap.d.ts +6 -1
- package/lib/typescript/src/refsMap.d.ts.map +1 -1
- package/lib/typescript/src/useBottomSheetContext.d.ts +18 -0
- package/lib/typescript/src/useBottomSheetContext.d.ts.map +1 -0
- package/lib/typescript/src/useBottomSheetControl.d.ts +1 -3
- package/lib/typescript/src/useBottomSheetControl.d.ts.map +1 -1
- package/lib/typescript/src/useBottomSheetManager.d.ts +10 -1
- package/lib/typescript/src/useBottomSheetManager.d.ts.map +1 -1
- package/lib/typescript/src/useBottomSheetStatus.d.ts +8 -0
- package/lib/typescript/src/useBottomSheetStatus.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/BottomSheetHost.tsx +5 -3
- package/src/BottomSheetManaged.tsx +2 -2
- package/src/BottomSheetPortal.tsx +6 -5
- package/src/bottomSheet.store.ts +24 -0
- package/src/bottomSheetCoordinator.ts +3 -3
- package/src/index.tsx +27 -6
- package/src/refsMap.ts +16 -4
- package/src/useBottomSheetContext.ts +55 -0
- package/src/useBottomSheetControl.ts +3 -15
- package/src/useBottomSheetManager.tsx +15 -9
- package/src/useBottomSheetStatus.ts +25 -0
- package/lib/commonjs/useBottomSheetState.js.map +0 -1
- package/lib/typescript/src/useBottomSheetState.d.ts +0 -14
- package/lib/typescript/src/useBottomSheetState.d.ts.map +0 -1
- package/src/useBottomSheetState.ts +0 -53
package/README.md
CHANGED
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
# react-native-bottom-sheet-stack
|
|
2
2
|
|
|
3
|
-
A stack manager for [@gorhom/bottom-sheet](https://github.com/gorhom/react-native-bottom-sheet) with
|
|
3
|
+
A stack manager for [@gorhom/bottom-sheet](https://github.com/gorhom/react-native-bottom-sheet) with navigation modes, iOS-style scale animations, and React context preservation.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Documentation
|
|
6
|
+
|
|
7
|
+
**[View Full Documentation](https://arekkubaczkowski.github.io/react-native-bottom-sheet-stack/)**
|
|
8
|
+
|
|
9
|
+
- [Getting Started](https://arekkubaczkowski.github.io/react-native-bottom-sheet-stack/getting-started)
|
|
10
|
+
- [Navigation Modes](https://arekkubaczkowski.github.io/react-native-bottom-sheet-stack/navigation-modes)
|
|
11
|
+
- [Scale Animation](https://arekkubaczkowski.github.io/react-native-bottom-sheet-stack/scale-animation)
|
|
12
|
+
- [Portal API (Context Preservation)](https://arekkubaczkowski.github.io/react-native-bottom-sheet-stack/context-preservation)
|
|
13
|
+
- [Type-Safe IDs & Params](https://arekkubaczkowski.github.io/react-native-bottom-sheet-stack/type-safe-ids)
|
|
14
|
+
- [API Reference](https://arekkubaczkowski.github.io/react-native-bottom-sheet-stack/api/components)
|
|
6
15
|
|
|
7
16
|
## Features
|
|
8
17
|
|
|
9
|
-
- **Stack Navigation**
|
|
10
|
-
- **Scale Animation**
|
|
11
|
-
- **Context Preservation**
|
|
12
|
-
- **
|
|
13
|
-
- **Group Support**
|
|
18
|
+
- **Stack Navigation** - `push`, `switch`, and `replace` modes for managing multiple sheets
|
|
19
|
+
- **Scale Animation** - iOS-style background scaling effect when sheets are stacked
|
|
20
|
+
- **Context Preservation** - Portal-based API that preserves React context in bottom sheets
|
|
21
|
+
- **Type-Safe** - Full TypeScript support with type-safe portal IDs and params
|
|
22
|
+
- **Group Support** - Isolated stacks for different parts of your app
|
|
14
23
|
|
|
15
24
|
## Installation
|
|
16
25
|
|
|
@@ -24,319 +33,53 @@ yarn add react-native-bottom-sheet-stack
|
|
|
24
33
|
yarn add @gorhom/bottom-sheet react-native-reanimated react-native-gesture-handler react-native-safe-area-context react-native-teleport zustand
|
|
25
34
|
```
|
|
26
35
|
|
|
27
|
-
## Quick
|
|
28
|
-
|
|
29
|
-
### 1. Setup Provider and Host
|
|
36
|
+
## Quick Example
|
|
30
37
|
|
|
31
38
|
```tsx
|
|
32
39
|
import {
|
|
33
40
|
BottomSheetManagerProvider,
|
|
34
41
|
BottomSheetHost,
|
|
35
42
|
BottomSheetScaleView,
|
|
43
|
+
BottomSheetManaged,
|
|
44
|
+
useBottomSheetManager,
|
|
45
|
+
useBottomSheetContext,
|
|
36
46
|
} from 'react-native-bottom-sheet-stack';
|
|
37
|
-
import { GestureHandlerRootView } from 'react-native-gesture-handler';
|
|
38
|
-
import { SafeAreaProvider } from 'react-native-safe-area-context';
|
|
39
47
|
|
|
40
|
-
|
|
48
|
+
// 1. Setup
|
|
49
|
+
function App() {
|
|
41
50
|
return (
|
|
42
|
-
<
|
|
43
|
-
<
|
|
44
|
-
<
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
<BottomSheetHost />
|
|
49
|
-
</BottomSheetManagerProvider>
|
|
50
|
-
</GestureHandlerRootView>
|
|
51
|
-
</SafeAreaProvider>
|
|
51
|
+
<BottomSheetManagerProvider id="main">
|
|
52
|
+
<BottomSheetScaleView>
|
|
53
|
+
<MyApp />
|
|
54
|
+
</BottomSheetScaleView>
|
|
55
|
+
<BottomSheetHost />
|
|
56
|
+
</BottomSheetManagerProvider>
|
|
52
57
|
);
|
|
53
58
|
}
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
### 2. Create a Bottom Sheet Component
|
|
57
|
-
|
|
58
|
-
Use `BottomSheetManaged` instead of `BottomSheet` from `@gorhom/bottom-sheet`:
|
|
59
|
-
|
|
60
|
-
```tsx
|
|
61
|
-
import { forwardRef } from 'react';
|
|
62
|
-
import { View, Text } from 'react-native';
|
|
63
|
-
import { BottomSheetView } from '@gorhom/bottom-sheet';
|
|
64
|
-
import { BottomSheetManaged, useBottomSheetState } from 'react-native-bottom-sheet-stack';
|
|
65
59
|
|
|
60
|
+
// 2. Create a sheet
|
|
66
61
|
const MySheet = forwardRef((props, ref) => {
|
|
67
|
-
const { close } =
|
|
68
|
-
|
|
62
|
+
const { close } = useBottomSheetContext();
|
|
69
63
|
return (
|
|
70
64
|
<BottomSheetManaged ref={ref} snapPoints={['50%']}>
|
|
71
|
-
<
|
|
72
|
-
|
|
73
|
-
<Text>Hello from Bottom Sheet!</Text>
|
|
74
|
-
<Button title="Close" onPress={close} />
|
|
75
|
-
</View>
|
|
76
|
-
</BottomSheetView>
|
|
65
|
+
<Text>Hello!</Text>
|
|
66
|
+
<Button title="Close" onPress={close} />
|
|
77
67
|
</BottomSheetManaged>
|
|
78
68
|
);
|
|
79
69
|
});
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### 3. Open Bottom Sheets
|
|
83
|
-
|
|
84
|
-
```tsx
|
|
85
|
-
import { useBottomSheetManager } from 'react-native-bottom-sheet-stack';
|
|
86
|
-
|
|
87
|
-
function MyComponent() {
|
|
88
|
-
const { openBottomSheet } = useBottomSheetManager();
|
|
89
|
-
|
|
90
|
-
const handleOpen = () => {
|
|
91
|
-
openBottomSheet(<MySheet />, {
|
|
92
|
-
mode: 'push', // 'push' | 'switch' | 'replace'
|
|
93
|
-
scaleBackground: true,
|
|
94
|
-
});
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
return <Button title="Open Sheet" onPress={handleOpen} />;
|
|
98
|
-
}
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
## Navigation Modes
|
|
102
|
-
|
|
103
|
-
| Mode | Description |
|
|
104
|
-
|------|-------------|
|
|
105
|
-
| `push` | Stack a new sheet on top. Previous sheet remains visible underneath. |
|
|
106
|
-
| `switch` | Hide current sheet and show new one. Previous sheet is restored when new one closes. |
|
|
107
|
-
| `replace` | Close current sheet and open new one. Previous sheet is removed from stack. |
|
|
108
|
-
|
|
109
|
-
## Scale Animation
|
|
110
|
-
|
|
111
|
-
Wrap your app content in `BottomSheetScaleView` to enable iOS-style scaling:
|
|
112
|
-
|
|
113
|
-
```tsx
|
|
114
|
-
<BottomSheetManagerProvider
|
|
115
|
-
id="default"
|
|
116
|
-
scaleConfig={{ scale: 0.92, translateY: 0, borderRadius: 24 }}
|
|
117
|
-
>
|
|
118
|
-
<BottomSheetScaleView>
|
|
119
|
-
<YourAppContent />
|
|
120
|
-
</BottomSheetScaleView>
|
|
121
|
-
<BottomSheetHost />
|
|
122
|
-
</BottomSheetManagerProvider>
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
> **Important:** `BottomSheetHost` must be **outside** of `BottomSheetScaleView`. If you wrap `BottomSheetHost` inside `BottomSheetScaleView`, the bottom sheets themselves will also scale, which is not the desired behavior.
|
|
126
|
-
|
|
127
|
-
Open sheets with `scaleBackground: true`:
|
|
128
|
-
|
|
129
|
-
```tsx
|
|
130
|
-
openBottomSheet(<MySheet />, { scaleBackground: true });
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
## Context Preservation (Portal API)
|
|
134
|
-
|
|
135
|
-
The imperative `openBottomSheet()` API stores content in a Zustand store and renders it in `BottomSheetHost`. This means **React context from your component tree is lost**.
|
|
136
|
-
|
|
137
|
-
For cases where you need context (themes, auth, i18n, etc.), use the **portal-based API**:
|
|
138
|
-
|
|
139
|
-
```tsx
|
|
140
|
-
import {
|
|
141
|
-
BottomSheetPortal,
|
|
142
|
-
useBottomSheetControl,
|
|
143
|
-
} from 'react-native-bottom-sheet-stack';
|
|
144
|
-
|
|
145
|
-
function MyComponent() {
|
|
146
|
-
const { open, close, isOpen } = useBottomSheetControl('my-sheet');
|
|
147
70
|
|
|
71
|
+
// 3. Open it
|
|
72
|
+
function OpenButton() {
|
|
73
|
+
const { open } = useBottomSheetManager();
|
|
148
74
|
return (
|
|
149
|
-
<
|
|
150
|
-
|
|
151
|
-
<
|
|
152
|
-
|
|
153
|
-
</BottomSheetPortal>
|
|
154
|
-
|
|
155
|
-
{/* Control it imperatively */}
|
|
156
|
-
<Button title="Open" onPress={() => open({ scaleBackground: true })} />
|
|
157
|
-
</View>
|
|
75
|
+
<Button
|
|
76
|
+
title="Open"
|
|
77
|
+
onPress={() => open(<MySheet />, { scaleBackground: true })}
|
|
78
|
+
/>
|
|
158
79
|
);
|
|
159
80
|
}
|
|
160
81
|
```
|
|
161
82
|
|
|
162
|
-
### How It Works
|
|
163
|
-
|
|
164
|
-
| API | Context | Use Case |
|
|
165
|
-
|-----|---------|----------|
|
|
166
|
-
| `openBottomSheet()` | Lost | Dynamic sheets, simple cases |
|
|
167
|
-
| `BottomSheetPortal` | Preserved | Sheets needing theme, auth, i18n, etc. |
|
|
168
|
-
|
|
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`.
|
|
170
|
-
|
|
171
|
-
### Type-Safe Portal IDs & Params
|
|
172
|
-
|
|
173
|
-
You can get autocomplete and type checking for portal sheet IDs and their parameters by augmenting the `BottomSheetPortalRegistry` interface.
|
|
174
|
-
|
|
175
|
-
**Step 1:** Create a type declaration file in your project (e.g., `src/types/bottom-sheet.d.ts`):
|
|
176
|
-
|
|
177
|
-
```tsx
|
|
178
|
-
import 'react-native-bottom-sheet-stack';
|
|
179
|
-
|
|
180
|
-
declare module 'react-native-bottom-sheet-stack' {
|
|
181
|
-
interface BottomSheetPortalRegistry {
|
|
182
|
-
'settings-sheet': true; // no params
|
|
183
|
-
'profile-sheet': { userId: string }; // with required params
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
| Value | Meaning |
|
|
189
|
-
|-------|---------|
|
|
190
|
-
| `true` | Sheet has no params |
|
|
191
|
-
| `{ ... }` | Sheet has required params |
|
|
192
|
-
|
|
193
|
-
**Step 2:** Make sure the file is included in your `tsconfig.json`:
|
|
194
|
-
|
|
195
|
-
```json
|
|
196
|
-
{
|
|
197
|
-
"compilerOptions": {
|
|
198
|
-
// ...
|
|
199
|
-
},
|
|
200
|
-
"include": [
|
|
201
|
-
"src/**/*",
|
|
202
|
-
"src/types/**/*.d.ts" // include your declaration files
|
|
203
|
-
]
|
|
204
|
-
}
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
**Step 3:** Now TypeScript will autocomplete and validate IDs and params:
|
|
208
|
-
|
|
209
|
-
```tsx
|
|
210
|
-
// ✅ No params required (defined as `true`)
|
|
211
|
-
settingsControl.open();
|
|
212
|
-
|
|
213
|
-
// ✅ Params required (defined as object)
|
|
214
|
-
profileControl.open({ params: { userId: '123' } });
|
|
215
|
-
|
|
216
|
-
// ❌ Error - missing required params
|
|
217
|
-
profileControl.open(); // TypeScript error!
|
|
218
|
-
```
|
|
219
|
-
|
|
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`.
|
|
236
|
-
|
|
237
|
-
## API Reference
|
|
238
|
-
|
|
239
|
-
### Components
|
|
240
|
-
|
|
241
|
-
#### `BottomSheetManagerProvider`
|
|
242
|
-
|
|
243
|
-
| Prop | Type | Description |
|
|
244
|
-
|------|------|-------------|
|
|
245
|
-
| `id` | `string` | Unique identifier for this stack group |
|
|
246
|
-
| `scaleConfig` | `ScaleConfig` | Optional scale animation configuration |
|
|
247
|
-
|
|
248
|
-
#### `BottomSheetHost`
|
|
249
|
-
|
|
250
|
-
Renders the bottom sheet stack. Place after your app content inside `BottomSheetManagerProvider`.
|
|
251
|
-
|
|
252
|
-
#### `BottomSheetScaleView`
|
|
253
|
-
|
|
254
|
-
Wrapper that applies scale animation to its children when sheets are opened with `scaleBackground: true`.
|
|
255
|
-
|
|
256
|
-
#### `BottomSheetManaged`
|
|
257
|
-
|
|
258
|
-
Drop-in replacement for `BottomSheet` from `@gorhom/bottom-sheet`. Accepts all the same props.
|
|
259
|
-
|
|
260
|
-
#### `BottomSheetPortal`
|
|
261
|
-
|
|
262
|
-
| Prop | Type | Description |
|
|
263
|
-
|------|------|-------------|
|
|
264
|
-
| `id` | `BottomSheetPortalId` | Unique identifier for this portal sheet (type-safe if registry is augmented) |
|
|
265
|
-
| `children` | `ReactElement` | The bottom sheet component to render |
|
|
266
|
-
|
|
267
|
-
### Hooks
|
|
268
|
-
|
|
269
|
-
#### `useBottomSheetManager()`
|
|
270
|
-
|
|
271
|
-
```tsx
|
|
272
|
-
const {
|
|
273
|
-
openBottomSheet, // (content, options?) => id
|
|
274
|
-
close, // (id) => void
|
|
275
|
-
clearAll, // () => void
|
|
276
|
-
} = useBottomSheetManager();
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
#### `useBottomSheetState<T>()`
|
|
280
|
-
|
|
281
|
-
Use inside a bottom sheet component. Pass a portal ID as generic for typed params:
|
|
282
|
-
|
|
283
|
-
```tsx
|
|
284
|
-
const {
|
|
285
|
-
bottomSheetState, // { id, status, groupId, ... }
|
|
286
|
-
params, // typed if generic provided, unknown otherwise
|
|
287
|
-
close, // () => void
|
|
288
|
-
} = useBottomSheetState<'my-sheet'>();
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
#### `useBottomSheetControl<T>(id: T)`
|
|
292
|
-
|
|
293
|
-
Control portal-based sheets. Params are type-safe if registry is augmented:
|
|
294
|
-
|
|
295
|
-
```tsx
|
|
296
|
-
const {
|
|
297
|
-
open, // (options?) => void - options include mode, params
|
|
298
|
-
close, // () => void
|
|
299
|
-
updateParams, // (params) => void - update params while open
|
|
300
|
-
resetParams, // () => void - reset params to undefined
|
|
301
|
-
isOpen, // boolean
|
|
302
|
-
status, // 'opening' | 'open' | 'closing' | 'hidden' | null
|
|
303
|
-
} = useBottomSheetControl('my-sheet');
|
|
304
|
-
|
|
305
|
-
// Open with mode and params
|
|
306
|
-
open({
|
|
307
|
-
mode: 'push', // 'push' | 'switch' | 'replace'
|
|
308
|
-
scaleBackground: true,
|
|
309
|
-
params: { userId: '123' } // required if defined in registry
|
|
310
|
-
});
|
|
311
|
-
|
|
312
|
-
// Update params while sheet is open
|
|
313
|
-
updateParams({ userId: '456' });
|
|
314
|
-
|
|
315
|
-
// Reset params
|
|
316
|
-
resetParams();
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
### Types
|
|
320
|
-
|
|
321
|
-
#### `BottomSheetPortalRegistry`
|
|
322
|
-
|
|
323
|
-
Interface to augment for type-safe portal IDs and params. See [Type-Safe Portal IDs & Params](#type-safe-portal-ids--params).
|
|
324
|
-
|
|
325
|
-
#### `BottomSheetPortalId`
|
|
326
|
-
|
|
327
|
-
Type for portal sheet IDs. If `BottomSheetPortalRegistry` is augmented, this is a union of registered keys. Otherwise, it's `string`.
|
|
328
|
-
|
|
329
|
-
#### `BottomSheetPortalParams<T>`
|
|
330
|
-
|
|
331
|
-
Type helper to extract params for a given portal sheet ID. Returns `undefined` if the sheet has no params (`true` in registry), or `ParamType | undefined` if defined (always includes `undefined` since params can be reset).
|
|
332
|
-
|
|
333
|
-
## Example
|
|
334
|
-
|
|
335
|
-
See the [example app](./example) for a full demo including:
|
|
336
|
-
- Navigation flow (push, switch, replace)
|
|
337
|
-
- Nested scale animations
|
|
338
|
-
- Context preservation comparison
|
|
339
|
-
|
|
340
83
|
## License
|
|
341
84
|
|
|
342
85
|
MIT
|
|
@@ -12,6 +12,7 @@ var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
|
|
|
12
12
|
var _reactNativeTeleport = require("react-native-teleport");
|
|
13
13
|
var _shallow = require("zustand/shallow");
|
|
14
14
|
var _animatedRegistry = require("./animatedRegistry");
|
|
15
|
+
var _refsMap = require("./refsMap");
|
|
15
16
|
var _BottomSheet = require("./BottomSheet.context");
|
|
16
17
|
var _bottomSheet = require("./bottomSheet.store");
|
|
17
18
|
var _BottomSheetBackdrop = require("./BottomSheetBackdrop");
|
|
@@ -81,9 +82,9 @@ function PortalHostWrapper(t0) {
|
|
|
81
82
|
return t5;
|
|
82
83
|
}
|
|
83
84
|
function BottomSheetHostComp() {
|
|
84
|
-
const $ = (0, _compilerRuntime.c)(
|
|
85
|
+
const $ = (0, _compilerRuntime.c)(16);
|
|
85
86
|
const queueIds = useQueueIds();
|
|
86
|
-
const
|
|
87
|
+
const clearGroup = (0, _bottomSheet.useBottomSheetStore)(_temp);
|
|
87
88
|
const {
|
|
88
89
|
groupId,
|
|
89
90
|
scaleConfig
|
|
@@ -108,57 +109,58 @@ function BottomSheetHostComp() {
|
|
|
108
109
|
(0, _react.useEffect)(t0, t1);
|
|
109
110
|
let t2;
|
|
110
111
|
let t3;
|
|
111
|
-
if ($[3] !==
|
|
112
|
+
if ($[3] !== clearGroup || $[4] !== groupId) {
|
|
112
113
|
t2 = () => () => {
|
|
113
|
-
|
|
114
|
+
clearGroup(groupId);
|
|
114
115
|
};
|
|
115
|
-
t3 = [
|
|
116
|
-
$[3] =
|
|
117
|
-
$[4] =
|
|
118
|
-
$[5] =
|
|
116
|
+
t3 = [clearGroup, groupId];
|
|
117
|
+
$[3] = clearGroup;
|
|
118
|
+
$[4] = groupId;
|
|
119
|
+
$[5] = t2;
|
|
120
|
+
$[6] = t3;
|
|
119
121
|
} else {
|
|
120
|
-
t2 = $[
|
|
121
|
-
t3 = $[
|
|
122
|
+
t2 = $[5];
|
|
123
|
+
t3 = $[6];
|
|
122
124
|
}
|
|
123
125
|
(0, _react.useEffect)(t2, t3);
|
|
124
126
|
let t4;
|
|
125
|
-
if ($[
|
|
127
|
+
if ($[7] !== groupId || $[8] !== queueIds || $[9] !== scaleConfig) {
|
|
126
128
|
let t5;
|
|
127
|
-
if ($[
|
|
129
|
+
if ($[11] !== groupId || $[12] !== scaleConfig) {
|
|
128
130
|
t5 = (id, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(QueueItem, {
|
|
129
131
|
id: id,
|
|
130
132
|
groupId: groupId,
|
|
131
133
|
scaleConfig: scaleConfig,
|
|
132
134
|
stackIndex: index
|
|
133
135
|
}, id);
|
|
134
|
-
$[
|
|
135
|
-
$[
|
|
136
|
-
$[
|
|
136
|
+
$[11] = groupId;
|
|
137
|
+
$[12] = scaleConfig;
|
|
138
|
+
$[13] = t5;
|
|
137
139
|
} else {
|
|
138
|
-
t5 = $[
|
|
140
|
+
t5 = $[13];
|
|
139
141
|
}
|
|
140
142
|
t4 = queueIds.map(t5);
|
|
141
|
-
$[
|
|
142
|
-
$[
|
|
143
|
-
$[
|
|
144
|
-
$[
|
|
143
|
+
$[7] = groupId;
|
|
144
|
+
$[8] = queueIds;
|
|
145
|
+
$[9] = scaleConfig;
|
|
146
|
+
$[10] = t4;
|
|
145
147
|
} else {
|
|
146
|
-
t4 = $[
|
|
148
|
+
t4 = $[10];
|
|
147
149
|
}
|
|
148
150
|
let t5;
|
|
149
|
-
if ($[
|
|
151
|
+
if ($[14] !== t4) {
|
|
150
152
|
t5 = /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
151
153
|
children: t4
|
|
152
154
|
});
|
|
153
|
-
$[
|
|
154
|
-
$[
|
|
155
|
+
$[14] = t4;
|
|
156
|
+
$[15] = t5;
|
|
155
157
|
} else {
|
|
156
|
-
t5 = $[
|
|
158
|
+
t5 = $[15];
|
|
157
159
|
}
|
|
158
160
|
return t5;
|
|
159
161
|
}
|
|
160
162
|
function _temp(store) {
|
|
161
|
-
return store.
|
|
163
|
+
return store.clearGroup;
|
|
162
164
|
}
|
|
163
165
|
function QueueItem(t0) {
|
|
164
166
|
const $ = (0, _compilerRuntime.c)(41);
|
|
@@ -210,6 +212,7 @@ function QueueItem(t0) {
|
|
|
210
212
|
let t5;
|
|
211
213
|
if ($[7] !== id) {
|
|
212
214
|
t4 = () => () => {
|
|
215
|
+
(0, _refsMap.cleanupSheetRef)(id);
|
|
213
216
|
(0, _animatedRegistry.cleanupAnimatedIndex)(id);
|
|
214
217
|
};
|
|
215
218
|
t5 = [id];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_reactNativeReanimated","_interopRequireDefault","_reactNativeSafeAreaContext","_reactNativeTeleport","_shallow","_animatedRegistry","_BottomSheet","_bottomSheet","_BottomSheetBackdrop","_bottomSheetCoordinator","_BottomSheetManager","_useScaleAnimation","_jsxRuntime","e","__esModule","default","PortalHostWrapper","t0","$","_compilerRuntime","c","id","width","height","t1","flex","t2","t3","t4","jsx","PortalHost","name","style","t5","View","pointerEvents","children","BottomSheetHostComp","queueIds","useQueueIds","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_reactNativeReanimated","_interopRequireDefault","_reactNativeSafeAreaContext","_reactNativeTeleport","_shallow","_animatedRegistry","_refsMap","_BottomSheet","_bottomSheet","_BottomSheetBackdrop","_bottomSheetCoordinator","_BottomSheetManager","_useScaleAnimation","_jsxRuntime","e","__esModule","default","PortalHostWrapper","t0","$","_compilerRuntime","c","id","width","height","t1","flex","t2","t3","t4","jsx","PortalHost","name","style","t5","View","pointerEvents","children","BottomSheetHostComp","queueIds","useQueueIds","clearGroup","useBottomSheetStore","_temp","groupId","scaleConfig","useBottomSheetManagerContext","unsubscribe","initBottomSheetCoordinator","useEffect","index","QueueItem","map","Fragment","store","stackIndex","state","sheetsById","sheet","startClosing","_temp2","useSafeAreaFrame","value","scaleStyle","useScaleAnimatedStyle","cleanupSheetRef","cleanupAnimatedIndex","backdropZIndex","contentZIndex","t6","StyleSheet","absoluteFillObject","zIndex","t7","t8","BottomSheetBackdrop","onPress","t9","t10","t11","styles","container","t12","content","usePortal","t13","t14","jsxs","BottomSheetContext","Provider","state_0","stackOrder","filter","sheetId","shallow","BottomSheetHost","exports","create"],"sourceRoot":"../../src","sources":["BottomSheetHost.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,7 +9,7 @@ var _bottomSheet = _interopRequireWildcard(require("@gorhom/bottom-sheet"));
|
|
|
9
9
|
var _react = _interopRequireDefault(require("react"));
|
|
10
10
|
var _animatedRegistry = require("./animatedRegistry");
|
|
11
11
|
var _bottomSheetCoordinator = require("./bottomSheetCoordinator");
|
|
12
|
-
var
|
|
12
|
+
var _useBottomSheetContext = require("./useBottomSheetContext");
|
|
13
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
15
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
@@ -56,7 +56,7 @@ const BottomSheetManaged = exports.BottomSheetManaged = /*#__PURE__*/_react.defa
|
|
|
56
56
|
const backdropComponent = t2 === undefined ? nullBackdrop : t2;
|
|
57
57
|
const {
|
|
58
58
|
bottomSheetState
|
|
59
|
-
} = (0,
|
|
59
|
+
} = (0, _useBottomSheetContext.useBottomSheetContext)();
|
|
60
60
|
let t3;
|
|
61
61
|
if ($[8] !== bottomSheetState.id || $[9] !== externalAnimatedIndex) {
|
|
62
62
|
t3 = externalAnimatedIndex ?? (0, _animatedRegistry.getAnimatedIndex)(bottomSheetState.id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_bottomSheet","_interopRequireWildcard","require","_react","_interopRequireDefault","_animatedRegistry","_bottomSheetCoordinator","
|
|
1
|
+
{"version":3,"names":["_bottomSheet","_interopRequireWildcard","require","_react","_interopRequireDefault","_animatedRegistry","_bottomSheetCoordinator","_useBottomSheetContext","_jsxRuntime","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","nullBackdrop","BottomSheetManaged","exports","React","forwardRef","t0","ref","$","_compilerRuntime","c","children","externalAnimatedIndex","onAnimate","onClose","props","t1","t2","enablePanDownToClose","backdropComponent","animatedIndex","undefined","bottomSheetState","useBottomSheetContext","t3","id","getAnimatedIndex","t4","createSheetEventHandlers","handleAnimate","handleClose","t5","fromIndex","toIndex","fromPosition","toPosition","wrappedOnAnimate","t6","wrappedOnClose","t7","Symbol","for","stiffness","damping","mass","config","useBottomSheetSpringConfigs","t8","jsx"],"sourceRoot":"../../src","sources":["BottomSheetManaged.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -24,15 +24,14 @@ function BottomSheetPortal({
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
// Get the ref that was created in useBottomSheetControl.open()
|
|
27
|
-
const ref = _refsMap.
|
|
27
|
+
const ref = (0, _refsMap.getSheetRef)(id);
|
|
28
28
|
|
|
29
29
|
// Clone the child element to add the ref
|
|
30
|
-
// @ts-ignore - same pattern as useBottomSheetManager
|
|
31
30
|
const childWithRef = /*#__PURE__*/_react.default.cloneElement(children, {
|
|
32
31
|
ref
|
|
33
32
|
});
|
|
34
33
|
|
|
35
|
-
// Wrap with BottomSheetContext so
|
|
34
|
+
// Wrap with BottomSheetContext so useBottomSheetContext() works inside portal content
|
|
36
35
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeTeleport.Portal, {
|
|
37
36
|
hostName: `bottomsheet-${id}`,
|
|
38
37
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_BottomSheet.BottomSheetContext.Provider, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Object","defineProperty","exports","value","BottomSheetPortal","_react","_interopRequireDefault","require","_reactNativeTeleport","_BottomSheet","_bottomSheet","_refsMap","_jsxRuntime","e","__esModule","default","id","children","sheetState","useBottomSheetStore","state","sheetsById","usePortal","ref","
|
|
1
|
+
{"version":3,"names":["Object","defineProperty","exports","value","BottomSheetPortal","_react","_interopRequireDefault","require","_reactNativeTeleport","_BottomSheet","_bottomSheet","_refsMap","_jsxRuntime","e","__esModule","default","id","children","sheetState","useBottomSheetStore","state","sheetsById","usePortal","ref","getSheetRef","childWithRef","React","cloneElement","jsx","Portal","hostName","BottomSheetContext","Provider"],"sourceRoot":"../../src","sources":["BottomSheetPortal.tsx"],"mappings":";AAAA,aAAa;;AAACA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,iBAAA,GAAAA,iBAAA;AAEd,IAAAC,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAEA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAEA,IAAAI,QAAA,GAAAJ,OAAA;AAAwC,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAD,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAOjC,SAAST,iBAAiBA,CAAC;EAAEY,EAAE;EAAEC;AAAiC,CAAC,EAAE;EAC1E,MAAMC,UAAU,GAAG,IAAAC,gCAAmB,EAAEC,KAAK,IAAKA,KAAK,CAACC,UAAU,CAACL,EAAE,CAAC,CAAC;;EAEvE;EACA,IAAI,CAACE,UAAU,EAAEI,SAAS,EAAE;IAC1B,OAAO,IAAI;EACb;;EAEA;EACA,MAAMC,GAAG,GAAG,IAAAC,oBAAW,EAACR,EAAE,CAAC;;EAE3B;EACA,MAAMS,YAAY,gBAAGC,cAAK,CAACC,YAAY,CAACV,QAAQ,EAAE;IAChDM;EACF,CAAwB,CAAC;;EAEzB;EACA,oBACE,IAAAX,WAAA,CAAAgB,GAAA,EAACpB,oBAAA,CAAAqB,MAAM;IAACC,QAAQ,EAAE,eAAed,EAAE,EAAG;IAAAC,QAAA,eACpC,IAAAL,WAAA,CAAAgB,GAAA,EAACnB,YAAA,CAAAsB,kBAAkB,CAACC,QAAQ;MAAC7B,KAAK,EAAE;QAAEa;MAAG,CAAE;MAAAC,QAAA,EACxCQ;IAAY,CACc;EAAC,CACxB,CAAC;AAEb","ignoreList":[]}
|
|
@@ -115,6 +115,22 @@ const useBottomSheetStore = exports.useBottomSheetStore = (0, _traditional.creat
|
|
|
115
115
|
}
|
|
116
116
|
};
|
|
117
117
|
}),
|
|
118
|
+
clearGroup: groupId => set(state => {
|
|
119
|
+
const idsToRemove = new Set(state.stackOrder.filter(id => state.sheetsById[id]?.groupId === groupId));
|
|
120
|
+
if (idsToRemove.size === 0) {
|
|
121
|
+
return state;
|
|
122
|
+
}
|
|
123
|
+
const newSheetsById = {
|
|
124
|
+
...state.sheetsById
|
|
125
|
+
};
|
|
126
|
+
idsToRemove.forEach(id => {
|
|
127
|
+
delete newSheetsById[id];
|
|
128
|
+
});
|
|
129
|
+
return {
|
|
130
|
+
sheetsById: newSheetsById,
|
|
131
|
+
stackOrder: state.stackOrder.filter(id => !idsToRemove.has(id))
|
|
132
|
+
};
|
|
133
|
+
}),
|
|
118
134
|
clearAll: () => set(() => ({
|
|
119
135
|
sheetsById: {},
|
|
120
136
|
stackOrder: []
|