react-native-bottom-sheet-stack 1.0.3 → 1.1.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 +262 -50
- package/lib/commonjs/BottomSheetHost.js +96 -20
- package/lib/commonjs/BottomSheetHost.js.map +1 -1
- package/lib/commonjs/BottomSheetManager.provider.js +7 -4
- package/lib/commonjs/BottomSheetManager.provider.js.map +1 -1
- package/lib/commonjs/BottomSheetPortal.js +46 -0
- package/lib/commonjs/BottomSheetPortal.js.map +1 -0
- package/lib/commonjs/bottomSheet.store.js +19 -0
- package/lib/commonjs/bottomSheet.store.js.map +1 -1
- package/lib/commonjs/index.js +14 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/portal.types.js +2 -0
- package/lib/commonjs/portal.types.js.map +1 -0
- package/lib/commonjs/useBottomSheetControl.js +81 -0
- package/lib/commonjs/useBottomSheetControl.js.map +1 -0
- package/lib/typescript/example/src/App.d.ts.map +1 -1
- package/lib/typescript/src/BottomSheetHost.d.ts.map +1 -1
- package/lib/typescript/src/BottomSheetManager.provider.d.ts.map +1 -1
- package/lib/typescript/src/BottomSheetPortal.d.ts +9 -0
- package/lib/typescript/src/BottomSheetPortal.d.ts.map +1 -0
- package/lib/typescript/src/bottomSheet.store.d.ts +5 -0
- package/lib/typescript/src/bottomSheet.store.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +3 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/portal.types.d.ts +24 -0
- package/lib/typescript/src/portal.types.d.ts.map +1 -0
- package/lib/typescript/src/useBottomSheetControl.d.ts +10 -0
- package/lib/typescript/src/useBottomSheetControl.d.ts.map +1 -0
- package/lib/typescript/src/useBottomSheetManager.d.ts +2 -0
- package/lib/typescript/src/useBottomSheetManager.d.ts.map +1 -1
- package/package.json +3 -1
- package/src/BottomSheetHost.tsx +23 -2
- package/src/BottomSheetManager.provider.tsx +6 -3
- package/src/BottomSheetPortal.tsx +39 -0
- package/src/bottomSheet.store.ts +27 -0
- package/src/index.tsx +6 -0
- package/src/portal.types.ts +25 -0
- package/src/useBottomSheetControl.ts +52 -0
package/README.md
CHANGED
|
@@ -1,88 +1,300 @@
|
|
|
1
|
-
#
|
|
1
|
+
# react-native-bottom-sheet-stack
|
|
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
|
-
|
|
6
|
-
> This library is currently in active development and is not yet considered production-ready.
|
|
5
|
+
## Features
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
- **Stack Navigation** — `push`, `switch`, and `replace` modes for managing multiple sheets
|
|
8
|
+
- **Scale Animation** — iOS-style background scaling effect when sheets are stacked
|
|
9
|
+
- **Context Preservation** — Portal-based API that preserves React context in bottom sheets
|
|
10
|
+
- **Underlying Sheets Stay Mounted** — Sheets remain in the stack until explicitly closed
|
|
11
|
+
- **Group Support** — Isolated stacks for different parts of your app
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
## 🚀 Features
|
|
14
|
-
|
|
15
|
-
- 🧱 `push` — stack a new sheet above the current one
|
|
16
|
-
- 🔄 `switch` — override current sheet temporarily, restore the previous one when closing
|
|
17
|
-
- 🔁 `replace` — fully swap and remove the current sheet
|
|
18
|
-
- 🧠 Underlying sheets remain mounted
|
|
19
|
-
- 🗂️ Group support for isolated stacks
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## 📦 Installation
|
|
13
|
+
## Installation
|
|
24
14
|
|
|
25
15
|
```bash
|
|
26
|
-
yarn add
|
|
16
|
+
yarn add react-native-bottom-sheet-stack
|
|
27
17
|
```
|
|
28
18
|
|
|
29
|
-
|
|
19
|
+
### Peer Dependencies
|
|
30
20
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
To make the stack manager work, you must replace all instances of BottomSheet from @gorhom/bottom-sheet with the provided:
|
|
34
|
-
|
|
35
|
-
```tsx
|
|
36
|
-
import { BottomSheetManaged } from 'react-native-bottom-sheet-stack';
|
|
21
|
+
```bash
|
|
22
|
+
yarn add @gorhom/bottom-sheet react-native-reanimated react-native-gesture-handler react-native-safe-area-context react-native-teleport zustand
|
|
37
23
|
```
|
|
38
24
|
|
|
39
|
-
|
|
25
|
+
## Quick Start
|
|
26
|
+
|
|
27
|
+
### 1. Setup Provider and Host
|
|
40
28
|
|
|
41
29
|
```tsx
|
|
42
30
|
import {
|
|
31
|
+
BottomSheetManagerProvider,
|
|
43
32
|
BottomSheetHost,
|
|
44
|
-
|
|
45
|
-
initBottomSheetCoordinator,
|
|
33
|
+
BottomSheetScaleView,
|
|
46
34
|
} from 'react-native-bottom-sheet-stack';
|
|
47
|
-
|
|
48
|
-
|
|
35
|
+
import { GestureHandlerRootView } from 'react-native-gesture-handler';
|
|
36
|
+
import { SafeAreaProvider } from 'react-native-safe-area-context';
|
|
49
37
|
|
|
50
38
|
export default function App() {
|
|
51
39
|
return (
|
|
52
|
-
<
|
|
53
|
-
<
|
|
54
|
-
|
|
55
|
-
|
|
40
|
+
<SafeAreaProvider>
|
|
41
|
+
<GestureHandlerRootView style={{ flex: 1 }}>
|
|
42
|
+
<BottomSheetManagerProvider id="default">
|
|
43
|
+
<BottomSheetScaleView>
|
|
44
|
+
<YourAppContent />
|
|
45
|
+
</BottomSheetScaleView>
|
|
46
|
+
<BottomSheetHost />
|
|
47
|
+
</BottomSheetManagerProvider>
|
|
48
|
+
</GestureHandlerRootView>
|
|
49
|
+
</SafeAreaProvider>
|
|
56
50
|
);
|
|
57
51
|
}
|
|
58
52
|
```
|
|
59
53
|
|
|
60
|
-
|
|
54
|
+
### 2. Create a Bottom Sheet Component
|
|
55
|
+
|
|
56
|
+
Use `BottomSheetManaged` instead of `BottomSheet` from `@gorhom/bottom-sheet`:
|
|
61
57
|
|
|
62
58
|
```tsx
|
|
63
|
-
import {
|
|
59
|
+
import { forwardRef } from 'react';
|
|
60
|
+
import { View, Text } from 'react-native';
|
|
61
|
+
import { BottomSheetView } from '@gorhom/bottom-sheet';
|
|
62
|
+
import { BottomSheetManaged, useBottomSheetState } from 'react-native-bottom-sheet-stack';
|
|
64
63
|
|
|
65
|
-
|
|
66
|
-
const {
|
|
64
|
+
const MySheet = forwardRef((props, ref) => {
|
|
65
|
+
const { close } = useBottomSheetState();
|
|
67
66
|
|
|
68
67
|
return (
|
|
69
|
-
<
|
|
70
|
-
<
|
|
71
|
-
|
|
68
|
+
<BottomSheetManaged ref={ref} snapPoints={['50%']}>
|
|
69
|
+
<BottomSheetView>
|
|
70
|
+
<View style={{ padding: 20 }}>
|
|
71
|
+
<Text>Hello from Bottom Sheet!</Text>
|
|
72
|
+
<Button title="Close" onPress={close} />
|
|
73
|
+
</View>
|
|
74
|
+
</BottomSheetView>
|
|
75
|
+
</BottomSheetManaged>
|
|
72
76
|
);
|
|
77
|
+
});
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### 3. Open Bottom Sheets
|
|
81
|
+
|
|
82
|
+
```tsx
|
|
83
|
+
import { useBottomSheetManager } from 'react-native-bottom-sheet-stack';
|
|
84
|
+
|
|
85
|
+
function MyComponent() {
|
|
86
|
+
const { openBottomSheet } = useBottomSheetManager();
|
|
87
|
+
|
|
88
|
+
const handleOpen = () => {
|
|
89
|
+
openBottomSheet(<MySheet />, {
|
|
90
|
+
mode: 'push', // 'push' | 'switch' | 'replace'
|
|
91
|
+
scaleBackground: true,
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
return <Button title="Open Sheet" onPress={handleOpen} />;
|
|
73
96
|
}
|
|
74
97
|
```
|
|
75
98
|
|
|
76
|
-
|
|
99
|
+
## Navigation Modes
|
|
100
|
+
|
|
101
|
+
| Mode | Description |
|
|
102
|
+
|------|-------------|
|
|
103
|
+
| `push` | Stack a new sheet on top. Previous sheet remains visible underneath. |
|
|
104
|
+
| `switch` | Hide current sheet and show new one. Previous sheet is restored when new one closes. |
|
|
105
|
+
| `replace` | Close current sheet and open new one. Previous sheet is removed from stack. |
|
|
106
|
+
|
|
107
|
+
## Scale Animation
|
|
108
|
+
|
|
109
|
+
Wrap your app content in `BottomSheetScaleView` to enable iOS-style scaling:
|
|
110
|
+
|
|
111
|
+
```tsx
|
|
112
|
+
<BottomSheetManagerProvider
|
|
113
|
+
id="default"
|
|
114
|
+
scaleConfig={{ scale: 0.92, translateY: 0, borderRadius: 24 }}
|
|
115
|
+
>
|
|
116
|
+
<BottomSheetScaleView>
|
|
117
|
+
<YourAppContent />
|
|
118
|
+
</BottomSheetScaleView>
|
|
119
|
+
<BottomSheetHost />
|
|
120
|
+
</BottomSheetManagerProvider>
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
> **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.
|
|
124
|
+
|
|
125
|
+
Open sheets with `scaleBackground: true`:
|
|
77
126
|
|
|
78
127
|
```tsx
|
|
79
|
-
|
|
128
|
+
openBottomSheet(<MySheet />, { scaleBackground: true });
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Context Preservation (Portal API)
|
|
132
|
+
|
|
133
|
+
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**.
|
|
134
|
+
|
|
135
|
+
For cases where you need context (themes, auth, i18n, etc.), use the **portal-based API**:
|
|
136
|
+
|
|
137
|
+
```tsx
|
|
138
|
+
import {
|
|
139
|
+
BottomSheetPortal,
|
|
140
|
+
useBottomSheetControl,
|
|
141
|
+
} from 'react-native-bottom-sheet-stack';
|
|
142
|
+
|
|
143
|
+
function MyComponent() {
|
|
144
|
+
const { open, close, isOpen } = useBottomSheetControl('my-sheet');
|
|
80
145
|
|
|
81
|
-
export default function YourBottomSheet() {
|
|
82
146
|
return (
|
|
83
|
-
<
|
|
84
|
-
{/*
|
|
85
|
-
|
|
147
|
+
<View>
|
|
148
|
+
{/* Declare the portal - content is rendered here in your React tree */}
|
|
149
|
+
<BottomSheetPortal id="my-sheet">
|
|
150
|
+
<MySheet />
|
|
151
|
+
</BottomSheetPortal>
|
|
152
|
+
|
|
153
|
+
{/* Control it imperatively */}
|
|
154
|
+
<Button title="Open" onPress={() => open({ scaleBackground: true })} />
|
|
155
|
+
</View>
|
|
86
156
|
);
|
|
87
157
|
}
|
|
88
|
-
```
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### How It Works
|
|
161
|
+
|
|
162
|
+
| API | Context | Use Case |
|
|
163
|
+
|-----|---------|----------|
|
|
164
|
+
| `openBottomSheet()` | Lost | Dynamic sheets, simple cases |
|
|
165
|
+
| `BottomSheetPortal` | Preserved | Sheets needing theme, auth, i18n, etc. |
|
|
166
|
+
|
|
167
|
+
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
|
+
|
|
169
|
+
### Type-Safe Portal IDs
|
|
170
|
+
|
|
171
|
+
You can get autocomplete and type checking for portal sheet IDs by augmenting the `BottomSheetPortalRegistry` interface.
|
|
172
|
+
|
|
173
|
+
**Step 1:** Create a type declaration file in your project (e.g., `src/types/bottom-sheet.d.ts`):
|
|
174
|
+
|
|
175
|
+
```tsx
|
|
176
|
+
import 'react-native-bottom-sheet-stack';
|
|
177
|
+
|
|
178
|
+
declare module 'react-native-bottom-sheet-stack' {
|
|
179
|
+
interface BottomSheetPortalRegistry {
|
|
180
|
+
'settings-sheet': true;
|
|
181
|
+
'profile-sheet': true;
|
|
182
|
+
'confirm-dialog': true;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
**Step 2:** Make sure the file is included in your `tsconfig.json`:
|
|
188
|
+
|
|
189
|
+
```json
|
|
190
|
+
{
|
|
191
|
+
"compilerOptions": {
|
|
192
|
+
// ...
|
|
193
|
+
},
|
|
194
|
+
"include": [
|
|
195
|
+
"src/**/*",
|
|
196
|
+
"src/types/**/*.d.ts" // include your declaration files
|
|
197
|
+
]
|
|
198
|
+
}
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
**Step 3:** Now TypeScript will autocomplete and validate the `id` prop:
|
|
202
|
+
|
|
203
|
+
```tsx
|
|
204
|
+
// ✅ Valid - 'settings-sheet' is in registry
|
|
205
|
+
<BottomSheetPortal id="settings-sheet">
|
|
206
|
+
const control = useBottomSheetControl('settings-sheet');
|
|
207
|
+
|
|
208
|
+
// ❌ Error - 'unknown-sheet' is not in registry
|
|
209
|
+
<BottomSheetPortal id="unknown-sheet">
|
|
210
|
+
const control = useBottomSheetControl('unknown-sheet');
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
If you don't augment the registry, the `id` accepts any `string` for flexibility.
|
|
214
|
+
|
|
215
|
+
## API Reference
|
|
216
|
+
|
|
217
|
+
### Components
|
|
218
|
+
|
|
219
|
+
#### `BottomSheetManagerProvider`
|
|
220
|
+
|
|
221
|
+
| Prop | Type | Description |
|
|
222
|
+
|------|------|-------------|
|
|
223
|
+
| `id` | `string` | Unique identifier for this stack group |
|
|
224
|
+
| `scaleConfig` | `ScaleConfig` | Optional scale animation configuration |
|
|
225
|
+
|
|
226
|
+
#### `BottomSheetHost`
|
|
227
|
+
|
|
228
|
+
Renders the bottom sheet stack. Place after your app content inside `BottomSheetManagerProvider`.
|
|
229
|
+
|
|
230
|
+
#### `BottomSheetScaleView`
|
|
231
|
+
|
|
232
|
+
Wrapper that applies scale animation to its children when sheets are opened with `scaleBackground: true`.
|
|
233
|
+
|
|
234
|
+
#### `BottomSheetManaged`
|
|
235
|
+
|
|
236
|
+
Drop-in replacement for `BottomSheet` from `@gorhom/bottom-sheet`. Accepts all the same props.
|
|
237
|
+
|
|
238
|
+
#### `BottomSheetPortal`
|
|
239
|
+
|
|
240
|
+
| Prop | Type | Description |
|
|
241
|
+
|------|------|-------------|
|
|
242
|
+
| `id` | `BottomSheetPortalId` | Unique identifier for this portal sheet (type-safe if registry is augmented) |
|
|
243
|
+
| `children` | `ReactElement` | The bottom sheet component to render |
|
|
244
|
+
|
|
245
|
+
### Hooks
|
|
246
|
+
|
|
247
|
+
#### `useBottomSheetManager()`
|
|
248
|
+
|
|
249
|
+
```tsx
|
|
250
|
+
const {
|
|
251
|
+
openBottomSheet, // (content, options?) => id
|
|
252
|
+
close, // (id) => void
|
|
253
|
+
clearAll, // () => void
|
|
254
|
+
} = useBottomSheetManager();
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
#### `useBottomSheetState()`
|
|
258
|
+
|
|
259
|
+
Use inside a bottom sheet component:
|
|
260
|
+
|
|
261
|
+
```tsx
|
|
262
|
+
const {
|
|
263
|
+
bottomSheetState, // { id, status, groupId, ... }
|
|
264
|
+
close, // () => void
|
|
265
|
+
} = useBottomSheetState();
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
#### `useBottomSheetControl(id: BottomSheetPortalId)`
|
|
269
|
+
|
|
270
|
+
Control portal-based sheets:
|
|
271
|
+
|
|
272
|
+
```tsx
|
|
273
|
+
const {
|
|
274
|
+
open, // (options?) => void
|
|
275
|
+
close, // () => void
|
|
276
|
+
isOpen, // boolean
|
|
277
|
+
status, // 'opening' | 'open' | 'closing' | 'hidden' | null
|
|
278
|
+
} = useBottomSheetControl('my-sheet');
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
### Types
|
|
282
|
+
|
|
283
|
+
#### `BottomSheetPortalRegistry`
|
|
284
|
+
|
|
285
|
+
Interface to augment for type-safe portal IDs. See [Type-Safe Portal IDs](#type-safe-portal-ids).
|
|
286
|
+
|
|
287
|
+
#### `BottomSheetPortalId`
|
|
288
|
+
|
|
289
|
+
Type for portal sheet IDs. If `BottomSheetPortalRegistry` is augmented, this is a union of registered keys. Otherwise, it's `string`.
|
|
290
|
+
|
|
291
|
+
## Example
|
|
292
|
+
|
|
293
|
+
See the [example app](./example) for a full demo including:
|
|
294
|
+
- Navigation flow (push, switch, replace)
|
|
295
|
+
- Nested scale animations
|
|
296
|
+
- Context preservation comparison
|
|
297
|
+
|
|
298
|
+
## License
|
|
299
|
+
|
|
300
|
+
MIT
|
|
@@ -9,6 +9,7 @@ var _react = require("react");
|
|
|
9
9
|
var _reactNative = require("react-native");
|
|
10
10
|
var _reactNativeReanimated = _interopRequireDefault(require("react-native-reanimated"));
|
|
11
11
|
var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
|
|
12
|
+
var _reactNativeTeleport = require("react-native-teleport");
|
|
12
13
|
var _shallow = require("zustand/shallow");
|
|
13
14
|
var _animatedRegistry = require("./animatedRegistry");
|
|
14
15
|
var _BottomSheetBackdrop = require("./BottomSheetBackdrop");
|
|
@@ -19,6 +20,65 @@ var _bottomSheetCoordinator = require("./bottomSheetCoordinator");
|
|
|
19
20
|
var _useScaleAnimation = require("./useScaleAnimation");
|
|
20
21
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
22
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
23
|
+
function PortalHostWrapper(t0) {
|
|
24
|
+
const $ = (0, _compilerRuntime.c)(12);
|
|
25
|
+
const {
|
|
26
|
+
id,
|
|
27
|
+
width,
|
|
28
|
+
height
|
|
29
|
+
} = t0;
|
|
30
|
+
let t1;
|
|
31
|
+
if ($[0] !== height || $[1] !== width) {
|
|
32
|
+
t1 = {
|
|
33
|
+
flex: 1,
|
|
34
|
+
width,
|
|
35
|
+
height
|
|
36
|
+
};
|
|
37
|
+
$[0] = height;
|
|
38
|
+
$[1] = width;
|
|
39
|
+
$[2] = t1;
|
|
40
|
+
} else {
|
|
41
|
+
t1 = $[2];
|
|
42
|
+
}
|
|
43
|
+
const t2 = `bottomsheet-${id}`;
|
|
44
|
+
let t3;
|
|
45
|
+
if ($[3] !== height || $[4] !== width) {
|
|
46
|
+
t3 = {
|
|
47
|
+
width,
|
|
48
|
+
height
|
|
49
|
+
};
|
|
50
|
+
$[3] = height;
|
|
51
|
+
$[4] = width;
|
|
52
|
+
$[5] = t3;
|
|
53
|
+
} else {
|
|
54
|
+
t3 = $[5];
|
|
55
|
+
}
|
|
56
|
+
let t4;
|
|
57
|
+
if ($[6] !== t2 || $[7] !== t3) {
|
|
58
|
+
t4 = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeTeleport.PortalHost, {
|
|
59
|
+
name: t2,
|
|
60
|
+
style: t3
|
|
61
|
+
});
|
|
62
|
+
$[6] = t2;
|
|
63
|
+
$[7] = t3;
|
|
64
|
+
$[8] = t4;
|
|
65
|
+
} else {
|
|
66
|
+
t4 = $[8];
|
|
67
|
+
}
|
|
68
|
+
let t5;
|
|
69
|
+
if ($[9] !== t1 || $[10] !== t4) {
|
|
70
|
+
t5 = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
71
|
+
style: t1,
|
|
72
|
+
children: t4
|
|
73
|
+
});
|
|
74
|
+
$[9] = t1;
|
|
75
|
+
$[10] = t4;
|
|
76
|
+
$[11] = t5;
|
|
77
|
+
} else {
|
|
78
|
+
t5 = $[11];
|
|
79
|
+
}
|
|
80
|
+
return t5;
|
|
81
|
+
}
|
|
22
82
|
function BottomSheetHostComp() {
|
|
23
83
|
const $ = (0, _compilerRuntime.c)(15);
|
|
24
84
|
const queueIds = useQueueIds();
|
|
@@ -99,7 +159,7 @@ function _temp(store) {
|
|
|
99
159
|
return store.clearAll;
|
|
100
160
|
}
|
|
101
161
|
function QueueItem(t0) {
|
|
102
|
-
const $ = (0, _compilerRuntime.c)(
|
|
162
|
+
const $ = (0, _compilerRuntime.c)(29);
|
|
103
163
|
const {
|
|
104
164
|
id,
|
|
105
165
|
groupId,
|
|
@@ -107,13 +167,13 @@ function QueueItem(t0) {
|
|
|
107
167
|
} = t0;
|
|
108
168
|
let t1;
|
|
109
169
|
if ($[0] !== id) {
|
|
110
|
-
t1 = state => state.sheetsById[id]
|
|
170
|
+
t1 = state => state.sheetsById[id];
|
|
111
171
|
$[0] = id;
|
|
112
172
|
$[1] = t1;
|
|
113
173
|
} else {
|
|
114
174
|
t1 = $[1];
|
|
115
175
|
}
|
|
116
|
-
const
|
|
176
|
+
const sheet = (0, _bottomSheet.useBottomSheetStore)(t1);
|
|
117
177
|
const {
|
|
118
178
|
width,
|
|
119
179
|
height
|
|
@@ -188,31 +248,47 @@ function QueueItem(t0) {
|
|
|
188
248
|
t8 = $[15];
|
|
189
249
|
}
|
|
190
250
|
let t9;
|
|
191
|
-
if ($[16] !==
|
|
192
|
-
t9 = /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
251
|
+
if ($[16] !== height || $[17] !== id || $[18] !== sheet?.content || $[19] !== sheet?.usePortal || $[20] !== width) {
|
|
252
|
+
t9 = sheet?.usePortal ? /*#__PURE__*/(0, _jsxRuntime.jsx)(PortalHostWrapper, {
|
|
253
|
+
id: id,
|
|
254
|
+
width: width,
|
|
255
|
+
height: height
|
|
256
|
+
}) : sheet?.content;
|
|
257
|
+
$[16] = height;
|
|
258
|
+
$[17] = id;
|
|
259
|
+
$[18] = sheet?.content;
|
|
260
|
+
$[19] = sheet?.usePortal;
|
|
261
|
+
$[20] = width;
|
|
262
|
+
$[21] = t9;
|
|
263
|
+
} else {
|
|
264
|
+
t9 = $[21];
|
|
265
|
+
}
|
|
266
|
+
let t10;
|
|
267
|
+
if ($[22] !== t8 || $[23] !== t9) {
|
|
268
|
+
t10 = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
193
269
|
style: t8,
|
|
194
|
-
children:
|
|
270
|
+
children: t9
|
|
195
271
|
});
|
|
196
|
-
$[
|
|
197
|
-
$[
|
|
198
|
-
$[
|
|
272
|
+
$[22] = t8;
|
|
273
|
+
$[23] = t9;
|
|
274
|
+
$[24] = t10;
|
|
199
275
|
} else {
|
|
200
|
-
|
|
276
|
+
t10 = $[24];
|
|
201
277
|
}
|
|
202
|
-
let
|
|
203
|
-
if ($[
|
|
204
|
-
|
|
278
|
+
let t11;
|
|
279
|
+
if ($[25] !== t10 || $[26] !== t6 || $[27] !== value) {
|
|
280
|
+
t11 = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_BottomSheet.BottomSheetContext.Provider, {
|
|
205
281
|
value: value,
|
|
206
|
-
children: [t6,
|
|
282
|
+
children: [t6, t10]
|
|
207
283
|
});
|
|
208
|
-
$[
|
|
209
|
-
$[
|
|
210
|
-
$[
|
|
211
|
-
$[
|
|
284
|
+
$[25] = t10;
|
|
285
|
+
$[26] = t6;
|
|
286
|
+
$[27] = value;
|
|
287
|
+
$[28] = t11;
|
|
212
288
|
} else {
|
|
213
|
-
|
|
289
|
+
t11 = $[28];
|
|
214
290
|
}
|
|
215
|
-
return
|
|
291
|
+
return t11;
|
|
216
292
|
}
|
|
217
293
|
const useQueueIds = () => {
|
|
218
294
|
const $ = (0, _compilerRuntime.c)(2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_reactNativeReanimated","_interopRequireDefault","_reactNativeSafeAreaContext","_shallow","_animatedRegistry","_BottomSheetBackdrop","_BottomSheet","_bottomSheet","_BottomSheetManager","_bottomSheetCoordinator","_useScaleAnimation","_jsxRuntime","e","__esModule","default","
|
|
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","Symbol","for","StyleSheet","absoluteFillObject","styles","backdropContainer","t6","BottomSheetBackdrop","t7","t8","container","t9","content","usePortal","t10","t11","jsxs","BottomSheetContext","Provider","stackOrder","filter","sheetId","shallow","BottomSheetHost","exports","create","zIndex","pointerEvents"],"sourceRoot":"../../src","sources":["BottomSheetHost.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,6 +7,7 @@ exports.BottomSheetManagerProvider = BottomSheetManagerProvider;
|
|
|
7
7
|
exports.useMaybeBottomSheetManagerContext = exports.useBottomSheetManagerContext = void 0;
|
|
8
8
|
var _compilerRuntime = require("react/compiler-runtime");
|
|
9
9
|
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _reactNativeTeleport = require("react-native-teleport");
|
|
10
11
|
var _BottomSheetManager = require("./BottomSheetManager.context");
|
|
11
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -32,10 +33,12 @@ function BottomSheetManagerProvider(t0) {
|
|
|
32
33
|
const value = t1;
|
|
33
34
|
let t2;
|
|
34
35
|
if ($[3] !== children || $[4] !== id || $[5] !== value) {
|
|
35
|
-
t2 = /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
t2 = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeTeleport.PortalProvider, {
|
|
37
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_BottomSheetManager.BottomSheetManagerContext.Provider, {
|
|
38
|
+
value: value,
|
|
39
|
+
children: children
|
|
40
|
+
}, id)
|
|
41
|
+
});
|
|
39
42
|
$[3] = children;
|
|
40
43
|
$[4] = id;
|
|
41
44
|
$[5] = value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_BottomSheetManager","_jsxRuntime","e","__esModule","default","BottomSheetManagerProvider","t0","$","_compilerRuntime","c","id","scaleConfig","children","t1","groupId","value","t2","jsx","BottomSheetManagerContext","Provider","useBottomSheetManagerContext","context","React","useContext","Error","exports","useMaybeBottomSheetManagerContext"],"sourceRoot":"../../src","sources":["BottomSheetManager.provider.tsx"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNativeTeleport","_BottomSheetManager","_jsxRuntime","e","__esModule","default","BottomSheetManagerProvider","t0","$","_compilerRuntime","c","id","scaleConfig","children","t1","groupId","value","t2","jsx","PortalProvider","BottomSheetManagerContext","Provider","useBottomSheetManagerContext","context","React","useContext","Error","exports","useMaybeBottomSheetManagerContext"],"sourceRoot":"../../src","sources":["BottomSheetManager.provider.tsx"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAEA,IAAAE,mBAAA,GAAAF,OAAA;AAGsC,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAQ/B,SAAAG,2BAAAC,EAAA;EAAA,MAAAC,CAAA,OAAAC,gBAAA,CAAAC,CAAA;EAAoC;IAAAC,EAAA;IAAAC,WAAA;IAAAC;EAAA,IAAAN,EAI3B;EAAA,IAAAO,EAAA;EAAA,IAAAN,CAAA,QAAAG,EAAA,IAAAH,CAAA,QAAAI,WAAA;IACAE,EAAA;MAAAC,OAAA,EAAWJ,EAAE;MAAAC;IAAc,CAAC;IAAAJ,CAAA,MAAAG,EAAA;IAAAH,CAAA,MAAAI,WAAA;IAAAJ,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EAA1C,MAAAQ,KAAA,GAAcF,EAA4B;EAAC,IAAAG,EAAA;EAAA,IAAAT,CAAA,QAAAK,QAAA,IAAAL,CAAA,QAAAG,EAAA,IAAAH,CAAA,QAAAQ,KAAA;IAGzCC,EAAA,oBAAAf,WAAA,CAAAgB,GAAA,EAAClB,oBAAA,CAAAmB,cAAc;MAAAN,QAAA,eACb,IAAAX,WAAA,CAAAgB,GAAA,EAAAjB,mBAAA,CAAAmB,yBAAA,CAAAC,QAAA;QAAoDL,KAAK,EAALA,KAAK;QAAAH,QAAA,EACtDA;MAAQ,GAD8BF,EAEL;IAAC,CACvB,CAAC;IAAAH,CAAA,MAAAK,QAAA;IAAAL,CAAA,MAAAG,EAAA;IAAAH,CAAA,MAAAQ,KAAA;IAAAR,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EAAA,OAJjBS,EAIiB;AAAA;AAId,MAAMK,4BAA4B,GACvCA,CAAA;EACE,MAAAC,OAAA,GAAgBC,cAAK,CAAAC,UAAW,CAACL,6CAAyB,CAAC;EAE3D,IAAI,CAACG,OAAO;IACV,MAAM,IAAIG,KAAK,CACb,+EACF,CAAC;EAAC;EACH,OACMH,OAAO;AAAA,CACf;AAACI,OAAA,CAAAL,4BAAA,GAAAA,4BAAA;AAEG,MAAMM,iCAAiC,GAC5CA,CAAA;EACE,MAAAL,OAAA,GAAgBC,cAAK,CAAAC,UAAW,CAACL,6CAAyB,CAAC;EAE3D,IAAI,CAACG,OAAO;IAAA,OACH,IAAI;EAAA;EACZ,OACMA,OAAO;AAAA,CACf;AAACI,OAAA,CAAAC,iCAAA,GAAAA,iCAAA","ignoreList":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use no memo';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.BottomSheetPortal = BottomSheetPortal;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _reactNativeTeleport = require("react-native-teleport");
|
|
10
|
+
var _BottomSheet = require("./BottomSheet.context");
|
|
11
|
+
var _bottomSheet = require("./bottomSheet.store");
|
|
12
|
+
var _refsMap = require("./refsMap");
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
function BottomSheetPortal({
|
|
16
|
+
id,
|
|
17
|
+
children
|
|
18
|
+
}) {
|
|
19
|
+
const sheetState = (0, _bottomSheet.useBottomSheetStore)(state => state.sheetsById[id]);
|
|
20
|
+
|
|
21
|
+
// Only render when the sheet is active and using portal
|
|
22
|
+
if (!sheetState?.usePortal) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// Get the ref that was created in useBottomSheetControl.open()
|
|
27
|
+
const ref = _refsMap.sheetRefs[id];
|
|
28
|
+
|
|
29
|
+
// Clone the child element to add the ref
|
|
30
|
+
// @ts-ignore - same pattern as useBottomSheetManager
|
|
31
|
+
const childWithRef = /*#__PURE__*/_react.default.cloneElement(children, {
|
|
32
|
+
ref
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
// Wrap with BottomSheetContext so useBottomSheetState() works inside portal content
|
|
36
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeTeleport.Portal, {
|
|
37
|
+
hostName: `bottomsheet-${id}`,
|
|
38
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_BottomSheet.BottomSheetContext.Provider, {
|
|
39
|
+
value: {
|
|
40
|
+
id
|
|
41
|
+
},
|
|
42
|
+
children: childWithRef
|
|
43
|
+
})
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=BottomSheetPortal.js.map
|
|
@@ -0,0 +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","sheetRefs","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;AAAsC,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAD,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAO/B,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,GAAGC,kBAAS,CAACR,EAAE,CAAC;;EAEzB;EACA;EACA,MAAMS,YAAY,gBAAGC,cAAK,CAACC,YAAY,CAACV,QAAQ,EAAE;IAAEM;EAAI,CAAC,CAAC;;EAE1D;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":[]}
|