@niibase/bottom-sheet-manager 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.
Files changed (73) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +147 -0
  3. package/lib/commonjs/events.js +35 -0
  4. package/lib/commonjs/events.js.map +1 -0
  5. package/lib/commonjs/index.js +85 -0
  6. package/lib/commonjs/index.js.map +1 -0
  7. package/lib/commonjs/manager.js +171 -0
  8. package/lib/commonjs/manager.js.map +1 -0
  9. package/lib/commonjs/provider.js +229 -0
  10. package/lib/commonjs/provider.js.map +1 -0
  11. package/lib/commonjs/router/index.js +100 -0
  12. package/lib/commonjs/router/index.js.map +1 -0
  13. package/lib/commonjs/router/router.js +72 -0
  14. package/lib/commonjs/router/router.js.map +1 -0
  15. package/lib/commonjs/router/types.js +6 -0
  16. package/lib/commonjs/router/types.js.map +1 -0
  17. package/lib/commonjs/router/view.js +180 -0
  18. package/lib/commonjs/router/view.js.map +1 -0
  19. package/lib/commonjs/sheet.js +240 -0
  20. package/lib/commonjs/sheet.js.map +1 -0
  21. package/lib/commonjs/types.js +6 -0
  22. package/lib/commonjs/types.js.map +1 -0
  23. package/lib/module/events.js +29 -0
  24. package/lib/module/events.js.map +1 -0
  25. package/lib/module/index.js +6 -0
  26. package/lib/module/index.js.map +1 -0
  27. package/lib/module/manager.js +165 -0
  28. package/lib/module/manager.js.map +1 -0
  29. package/lib/module/provider.js +210 -0
  30. package/lib/module/provider.js.map +1 -0
  31. package/lib/module/router/index.js +79 -0
  32. package/lib/module/router/index.js.map +1 -0
  33. package/lib/module/router/router.js +65 -0
  34. package/lib/module/router/router.js.map +1 -0
  35. package/lib/module/router/types.js +2 -0
  36. package/lib/module/router/types.js.map +1 -0
  37. package/lib/module/router/view.js +173 -0
  38. package/lib/module/router/view.js.map +1 -0
  39. package/lib/module/sheet.js +232 -0
  40. package/lib/module/sheet.js.map +1 -0
  41. package/lib/module/types.js +2 -0
  42. package/lib/module/types.js.map +1 -0
  43. package/lib/typescript/events.d.ts +16 -0
  44. package/lib/typescript/events.d.ts.map +1 -0
  45. package/lib/typescript/index.d.ts +6 -0
  46. package/lib/typescript/index.d.ts.map +1 -0
  47. package/lib/typescript/manager.d.ts +78 -0
  48. package/lib/typescript/manager.d.ts.map +1 -0
  49. package/lib/typescript/provider.d.ts +69 -0
  50. package/lib/typescript/provider.d.ts.map +1 -0
  51. package/lib/typescript/router/index.d.ts +59 -0
  52. package/lib/typescript/router/index.d.ts.map +1 -0
  53. package/lib/typescript/router/router.d.ts +47 -0
  54. package/lib/typescript/router/router.d.ts.map +1 -0
  55. package/lib/typescript/router/types.d.ts +46 -0
  56. package/lib/typescript/router/types.d.ts.map +1 -0
  57. package/lib/typescript/router/view.d.ts +11 -0
  58. package/lib/typescript/router/view.d.ts.map +1 -0
  59. package/lib/typescript/sheet.d.ts +19 -0
  60. package/lib/typescript/sheet.d.ts.map +1 -0
  61. package/lib/typescript/types.d.ts +125 -0
  62. package/lib/typescript/types.d.ts.map +1 -0
  63. package/package.json +102 -0
  64. package/src/events.ts +40 -0
  65. package/src/index.ts +11 -0
  66. package/src/manager.ts +223 -0
  67. package/src/provider.tsx +293 -0
  68. package/src/router/index.tsx +130 -0
  69. package/src/router/router.ts +94 -0
  70. package/src/router/types.ts +117 -0
  71. package/src/router/view.tsx +265 -0
  72. package/src/sheet.tsx +350 -0
  73. package/src/types.ts +153 -0
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SheetProvider = SheetProvider;
7
+ exports.providerRegistryStack = exports.SheetRefContext = void 0;
8
+ exports.registerSheet = registerSheet;
9
+ exports.sheetsRegistry = void 0;
10
+ exports.useOnSheet = useOnSheet;
11
+ exports.useSheetIDContext = exports.useSheetAnimationContext = exports.useProviderContext = void 0;
12
+ exports.useSheetPayload = useSheetPayload;
13
+ exports.useSheetRef = void 0;
14
+ var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
15
+ var _bottomSheet = require("@gorhom/bottom-sheet");
16
+ var _reactNative = require("react-native");
17
+ var _react = _interopRequireDefault(require("react"));
18
+ var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
19
+ var _events = require("./events");
20
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
21
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
+ const providerRegistryStack = exports.providerRegistryStack = [];
23
+
24
+ /**
25
+ * An object that holds all the sheet components against their ids.
26
+ */
27
+ const sheetsRegistry = exports.sheetsRegistry = {
28
+ global: {}
29
+ };
30
+ // Registers your Sheet with the SheetProvider.
31
+ function registerSheet(id, Sheet, ...contexts) {
32
+ if (!id || !Sheet) return;
33
+ if (!contexts || contexts.length === 0) contexts = ["global"];
34
+ for (let context of contexts) {
35
+ const registry = !sheetsRegistry[context] ? sheetsRegistry[context] = {} : sheetsRegistry[context];
36
+ registry[id] = Sheet;
37
+ _events.eventManager.publish(`${context}-on-register`);
38
+ }
39
+ }
40
+
41
+ /**
42
+ * The SheetProvider makes available the sheets in a given context. The default context is
43
+ * `global`. However if you want to render a Sheet within another sheet or if you want to render
44
+ * Sheets in a modal. You can use a separate Provider with a custom context value.
45
+ *
46
+ * For example
47
+ * ```ts
48
+ * // Define your SheetProvider in the component/modal where
49
+ * // you want to show some Sheets.
50
+ * <SheetProvider context="local-context" />
51
+ *
52
+ * // Then register your sheet when for example the
53
+ * // Modal component renders.
54
+ *
55
+ * registerSheet('local-sheet', LocalSheet,'local-context');
56
+ *
57
+ * ```
58
+ */
59
+ function SheetProvider({
60
+ iosModalSheetTypeOfAnimation = false,
61
+ context = "global",
62
+ duration = 300,
63
+ children
64
+ }) {
65
+ const {
66
+ top
67
+ } = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)();
68
+ const [, forceUpdate] = _react.default.useReducer(x => x + 1, 0);
69
+ const sheetIds = Object.keys(sheetsRegistry[context] || sheetsRegistry["global"] || {});
70
+
71
+ // Rerender when a new sheet is added.
72
+ const onRegister = _react.default.useCallback(forceUpdate, [forceUpdate]);
73
+
74
+ // IOS modal sheet type of animation
75
+ const isFullScreen = (0, _reactNativeReanimated.useSharedValue)(-1);
76
+ const colorStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
77
+ flex: 1,
78
+ backgroundColor: (0, _reactNativeReanimated.interpolateColor)(isFullScreen.value, [0, 1], ["transparent", "#000"])
79
+ }));
80
+ const animatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
81
+ flex: 1,
82
+ overflow: "hidden",
83
+ borderRadius: (0, _reactNativeReanimated.interpolate)(isFullScreen.value, [0, 0.8, 1], [0, 20, 24], "clamp"),
84
+ transform: [{
85
+ scaleX: (0, _reactNativeReanimated.withTiming)((0, _reactNativeReanimated.interpolate)(isFullScreen.value, [0, 0.98, 1], [1, 1, 0.92], "clamp"), {
86
+ duration
87
+ })
88
+ }, {
89
+ translateY: (0, _reactNativeReanimated.withSpring)((0, _reactNativeReanimated.interpolate)(isFullScreen.value, [0, 0.99, 1], [0, top, top + 5], "clamp"), {
90
+ duration,
91
+ dampingRatio: 1.5
92
+ })
93
+ }]
94
+ }), [duration]);
95
+
96
+ // Since background color is white, we need to set status bar to light
97
+ const setStatusBar = _reactNative.StatusBar.setBarStyle;
98
+ (0, _reactNativeReanimated.useAnimatedReaction)(() => isFullScreen.value, currentValue => {
99
+ "worklet";
100
+
101
+ if (currentValue > -1) {
102
+ (0, _reactNativeReanimated.runOnJS)(setStatusBar)(currentValue >= 0.5 ? "light-content" : "default");
103
+ }
104
+ }, []);
105
+ _react.default.useEffect(() => {
106
+ providerRegistryStack.indexOf(context) > -1 ? providerRegistryStack.indexOf(context) : providerRegistryStack.push(context) - 1;
107
+ const unsub = _events.eventManager.subscribe(`${context}-on-register`, onRegister);
108
+ return () => {
109
+ providerRegistryStack.splice(providerRegistryStack.indexOf(context), 1);
110
+ unsub?.unsubscribe();
111
+ };
112
+ }, [context, onRegister]);
113
+ return /*#__PURE__*/_react.default.createElement(SheetAnimationContext.Provider, {
114
+ value: {
115
+ isFullScreen,
116
+ iosModalSheetTypeOfAnimation
117
+ }
118
+ }, /*#__PURE__*/_react.default.createElement(_reactNativeReanimated.default.View, {
119
+ style: colorStyle
120
+ }, /*#__PURE__*/_react.default.createElement(_reactNativeReanimated.default.View, {
121
+ style: animatedStyle
122
+ }, children)), /*#__PURE__*/_react.default.createElement(_bottomSheet.BottomSheetModalProvider, null, sheetIds.map(id => /*#__PURE__*/_react.default.createElement(RenderSheet, {
123
+ key: id,
124
+ id: id,
125
+ context: context,
126
+ duration: duration
127
+ }))));
128
+ }
129
+ const ProviderContext = /*#__PURE__*/_react.default.createContext("global");
130
+ const SheetIDContext = /*#__PURE__*/_react.default.createContext(undefined);
131
+ const SheetAnimationContext = /*#__PURE__*/_react.default.createContext({
132
+ isFullScreen: {
133
+ value: 0
134
+ },
135
+ iosModalSheetTypeOfAnimation: false
136
+ });
137
+ const SheetRefContext = exports.SheetRefContext = /*#__PURE__*/_react.default.createContext({});
138
+ const SheetPayloadContext = /*#__PURE__*/_react.default.createContext(undefined);
139
+
140
+ /**
141
+ * Get id of the current context.
142
+ */
143
+ const useProviderContext = () => _react.default.useContext(ProviderContext);
144
+ /**
145
+ * Get id of the current sheet
146
+ */
147
+ exports.useProviderContext = useProviderContext;
148
+ const useSheetIDContext = () => _react.default.useContext(SheetIDContext);
149
+ /**
150
+ * Get the current sheet animation context.
151
+ */
152
+ exports.useSheetIDContext = useSheetIDContext;
153
+ const useSheetAnimationContext = () => _react.default.useContext(SheetAnimationContext);
154
+ /**
155
+ * Get the current Sheet's internal ref.
156
+ */
157
+ exports.useSheetAnimationContext = useSheetAnimationContext;
158
+ const useSheetRef = () => _react.default.useContext(SheetRefContext);
159
+
160
+ /**
161
+ * Get the payload this sheet was opened with.
162
+ */
163
+ exports.useSheetRef = useSheetRef;
164
+ function useSheetPayload() {
165
+ return _react.default.useContext(SheetPayloadContext);
166
+ }
167
+
168
+ /**
169
+ * Listen to sheet events.
170
+ */
171
+ function useOnSheet(id, type, listener) {
172
+ _react.default.useEffect(() => {
173
+ const subscription = _events.eventManager.subscribe(`${type}_${id}`, listener);
174
+ return () => subscription.unsubscribe();
175
+ }, [id, listener]);
176
+ }
177
+ const RenderSheet = ({
178
+ id,
179
+ context,
180
+ duration
181
+ }) => {
182
+ const [payload, setPayload] = _react.default.useState();
183
+ const [visible, setVisible] = _react.default.useState(false);
184
+ const ref = _react.default.useRef(null);
185
+ const Sheet = context.startsWith("$$-auto-") ? sheetsRegistry?.global?.[id] : sheetsRegistry[context] ? sheetsRegistry[context]?.[id] : undefined;
186
+ const onShow = _react.default.useCallback((data, ctx = "global", reopened) => {
187
+ if (ctx !== context) return;
188
+ if (!reopened) setPayload(data);
189
+ setVisible(true);
190
+ }, [context]);
191
+ const onClose = _react.default.useCallback((_data, ctx = "global", reopened) => {
192
+ if (context !== ctx) return;
193
+ if (!reopened) {
194
+ setPayload(undefined);
195
+ setTimeout(() => setVisible(false), Math.max(duration ?? 300, 300));
196
+ } else {
197
+ setVisible(false);
198
+ }
199
+ }, [context]);
200
+ const onHide = _react.default.useCallback((data, ctx = "global") => {
201
+ _events.eventManager.publish(`hide_${id}`, data, ctx);
202
+ }, [id]);
203
+ _react.default.useEffect(() => {
204
+ if (visible) {
205
+ _events.eventManager.publish(`show_${id}`, payload, context);
206
+ }
207
+ }, [context, id, payload, visible]);
208
+ _react.default.useEffect(() => {
209
+ let subs = [_events.eventManager.subscribe(`show_wrap_${id}`, onShow), _events.eventManager.subscribe(`onclose_${id}`, onClose), _events.eventManager.subscribe(`hide_wrap_${id}`, onHide)];
210
+ return () => {
211
+ subs.forEach(s => s.unsubscribe());
212
+ };
213
+ }, [id, context, onShow, onHide, onClose]);
214
+ if (!Sheet) return null;
215
+ return visible ? /*#__PURE__*/_react.default.createElement(ProviderContext.Provider, {
216
+ value: context
217
+ }, /*#__PURE__*/_react.default.createElement(SheetIDContext.Provider, {
218
+ value: id
219
+ }, /*#__PURE__*/_react.default.createElement(SheetRefContext.Provider, {
220
+ value: ref
221
+ }, /*#__PURE__*/_react.default.createElement(SheetPayloadContext.Provider, {
222
+ value: payload
223
+ }, /*#__PURE__*/_react.default.createElement(Sheet, {
224
+ id: id,
225
+ payload: payload,
226
+ context: context
227
+ }))))) : null;
228
+ };
229
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNativeSafeAreaContext","require","_bottomSheet","_reactNative","_react","_interopRequireDefault","_reactNativeReanimated","_interopRequireWildcard","_events","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","providerRegistryStack","exports","sheetsRegistry","global","registerSheet","id","Sheet","contexts","length","context","registry","eventManager","publish","SheetProvider","iosModalSheetTypeOfAnimation","duration","children","top","useSafeAreaInsets","forceUpdate","React","useReducer","x","sheetIds","keys","onRegister","useCallback","isFullScreen","useSharedValue","colorStyle","useAnimatedStyle","flex","backgroundColor","interpolateColor","value","animatedStyle","overflow","borderRadius","interpolate","transform","scaleX","withTiming","translateY","withSpring","dampingRatio","setStatusBar","StatusBar","setBarStyle","useAnimatedReaction","currentValue","runOnJS","useEffect","indexOf","push","unsub","subscribe","splice","unsubscribe","createElement","SheetAnimationContext","Provider","View","style","BottomSheetModalProvider","map","RenderSheet","key","ProviderContext","createContext","SheetIDContext","undefined","SheetRefContext","SheetPayloadContext","useProviderContext","useContext","useSheetIDContext","useSheetAnimationContext","useSheetRef","useSheetPayload","useOnSheet","type","listener","subscription","payload","setPayload","useState","visible","setVisible","ref","useRef","startsWith","onShow","data","ctx","reopened","onClose","_data","setTimeout","Math","max","onHide","subs","forEach","s"],"sourceRoot":"../../src","sources":["provider.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ createBottomSheetNavigator: true
8
+ };
9
+ exports.createBottomSheetNavigator = createBottomSheetNavigator;
10
+ var _native = require("@react-navigation/native");
11
+ var _react = _interopRequireDefault(require("react"));
12
+ var _router = require("./router");
13
+ var _view = require("./view");
14
+ var _types = require("./types");
15
+ Object.keys(_types).forEach(function (key) {
16
+ if (key === "default" || key === "__esModule") return;
17
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
18
+ if (key in exports && exports[key] === _types[key]) return;
19
+ Object.defineProperty(exports, key, {
20
+ enumerable: true,
21
+ get: function () {
22
+ return _types[key];
23
+ }
24
+ });
25
+ });
26
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
27
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
28
+ function BottomSheetNavigator({
29
+ id,
30
+ children,
31
+ screenListeners,
32
+ screenOptions,
33
+ ...rest
34
+ }) {
35
+ const {
36
+ state,
37
+ descriptors,
38
+ navigation,
39
+ NavigationContent
40
+ } = (0, _native.useNavigationBuilder)(_router.BottomSheetRouter, {
41
+ id,
42
+ children,
43
+ screenListeners,
44
+ screenOptions
45
+ });
46
+ return /*#__PURE__*/_react.default.createElement(NavigationContent, null, /*#__PURE__*/_react.default.createElement(_view.BottomSheetView, _extends({}, rest, {
47
+ state: state,
48
+ navigation: navigation,
49
+ descriptors: descriptors
50
+ })));
51
+ }
52
+
53
+ /**
54
+ * To use BottomSheetNavigator with expo-router, the first screen should be your app content
55
+ * and add a border radius of 24px to the root view if want to snap to 100%.
56
+ *
57
+ * @example
58
+ * ```tsx
59
+ * import {
60
+ * createBottomSheetNavigator,
61
+ * BottomSheetNavigationOptions,
62
+ * BottomSheetNavigationEventMap,
63
+ * BottomSheetNavigationState,
64
+ * } from "@repo/bottom-sheet";
65
+ * import { Slot, withLayoutContext } from "expo-router";
66
+ *
67
+ * const { Navigator } = createBottomSheetNavigator();
68
+ *
69
+ * const BottomSheet = withLayoutContext<
70
+ * BottomSheetNavigationOptions,
71
+ * typeof Navigator,
72
+ * BottomSheetNavigationState<any>,
73
+ * BottomSheetNavigationEventMap
74
+ * >(Navigator);
75
+ *
76
+ * export const unstable_settings = {
77
+ * initialRouteName: "index",
78
+ * };
79
+ *
80
+ * export default function Layout() {
81
+ * if (typeof window === "undefined") return <Slot />;
82
+ * return (
83
+ * <BottomSheet
84
+ * screenOptions={
85
+ * {
86
+ * // API Reference: `@repo/design/bottom-sheet/types.ts`
87
+ * // And: https://gorhom.github.io/react-native-bottom-sheet/modal/props/
88
+ * }
89
+ * }
90
+ *. />
91
+ * );
92
+ * }
93
+ * ```
94
+ */
95
+ function createBottomSheetNavigator(config) {
96
+ // We call `createNavigatorFactory` with our un-typed navigator
97
+ // but pass in the config to get the typed container
98
+ return (0, _native.createNavigatorFactory)(BottomSheetNavigator)(config);
99
+ }
100
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_native","require","_react","_interopRequireDefault","_router","_view","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","e","__esModule","default","_extends","assign","bind","n","arguments","length","t","r","apply","BottomSheetNavigator","id","children","screenListeners","screenOptions","rest","state","descriptors","navigation","NavigationContent","useNavigationBuilder","BottomSheetRouter","createElement","BottomSheetView","createBottomSheetNavigator","config","createNavigatorFactory"],"sourceRoot":"../../../src","sources":["router/index.tsx"],"mappings":";;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAQA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,OAAA,GAAAH,OAAA;AASA,IAAAI,KAAA,GAAAJ,OAAA;AA8GA,IAAAK,MAAA,GAAAL,OAAA;AAAAM,MAAA,CAAAC,IAAA,CAAAF,MAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,MAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,MAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AAAwB,SAAAP,uBAAAgB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,SAAA,WAAAA,QAAA,GAAAf,MAAA,CAAAgB,MAAA,GAAAhB,MAAA,CAAAgB,MAAA,CAAAC,IAAA,eAAAC,CAAA,aAAAN,CAAA,MAAAA,CAAA,GAAAO,SAAA,CAAAC,MAAA,EAAAR,CAAA,UAAAS,CAAA,GAAAF,SAAA,CAAAP,CAAA,YAAAU,CAAA,IAAAD,CAAA,OAAAhB,cAAA,CAAAC,IAAA,CAAAe,CAAA,EAAAC,CAAA,MAAAJ,CAAA,CAAAI,CAAA,IAAAD,CAAA,CAAAC,CAAA,aAAAJ,CAAA,KAAAH,QAAA,CAAAQ,KAAA,OAAAJ,SAAA;AA5GxB,SAASK,oBAAoBA,CAAC;EAC5BC,EAAE;EACFC,QAAQ;EACRC,eAAe;EACfC,aAAa;EACb,GAAGC;AACsB,CAAC,EAAE;EAC5B,MAAM;IAAEC,KAAK;IAAEC,WAAW;IAAEC,UAAU;IAAEC;EAAkB,CAAC,GAAG,IAAAC,4BAAoB,EAMhFC,yBAAiB,EAAE;IACnBV,EAAE;IACFC,QAAQ;IACRC,eAAe;IACfC;EACF,CAAC,CAAC;EAEF,oBACEjC,MAAA,CAAAmB,OAAA,CAAAsB,aAAA,CAACH,iBAAiB,qBAChBtC,MAAA,CAAAmB,OAAA,CAAAsB,aAAA,CAACtC,KAAA,CAAAuC,eAAe,EAAAtB,QAAA,KACVc,IAAI;IACRC,KAAK,EAAEA,KAAM;IACbE,UAAU,EAAEA,UAAW;IACvBD,WAAW,EAAEA;EAAY,EAC1B,CACgB,CAAC;AAExB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASO,0BAA0BA,CA4BxCC,MAAe,EAAmC;EAClD;EACA;EACA,OAAO,IAAAC,8BAAsB,EAAChB,oBAAoB,CAAC,CAACe,MAAM,CAAC;AAC7D","ignoreList":[]}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.BottomSheetActions = void 0;
7
+ exports.BottomSheetRouter = BottomSheetRouter;
8
+ var _native = require("@react-navigation/native");
9
+ var _nonSecure = require("nanoid/non-secure");
10
+ const BottomSheetActions = exports.BottomSheetActions = {
11
+ ..._native.StackActions,
12
+ snapTo(index) {
13
+ return {
14
+ type: "SNAP_TO",
15
+ index
16
+ };
17
+ }
18
+ };
19
+ function BottomSheetRouter(routerOptions) {
20
+ const baseRouter = (0, _native.StackRouter)(routerOptions);
21
+ return {
22
+ ...baseRouter,
23
+ type: "bottom-sheet",
24
+ getInitialState(options) {
25
+ const state = baseRouter.getInitialState(options);
26
+ return {
27
+ ...state,
28
+ stale: false,
29
+ type: "bottom-sheet",
30
+ key: `bottom-sheet-${(0, _nonSecure.nanoid)()}`
31
+ };
32
+ },
33
+ getStateForAction(state, action, options) {
34
+ switch (action.type) {
35
+ case "SNAP_TO":
36
+ {
37
+ const index = action.target === state.key && action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;
38
+ return {
39
+ ...state,
40
+ routes: state.routes.map((route, i) => i === index ? {
41
+ ...route,
42
+ snapToIndex: action.index
43
+ } : route)
44
+ };
45
+ }
46
+ default:
47
+ return baseRouter.getStateForAction(state, action, options);
48
+ }
49
+ },
50
+ getRehydratedState(partialState, {
51
+ routeNames,
52
+ routeParamList,
53
+ routeGetIdList
54
+ }) {
55
+ if (partialState.stale === false) {
56
+ return partialState;
57
+ }
58
+ const state = baseRouter.getRehydratedState(partialState, {
59
+ routeNames,
60
+ routeParamList,
61
+ routeGetIdList
62
+ });
63
+ return {
64
+ ...state,
65
+ type: "bottom-sheet",
66
+ key: `bottom-sheet-${(0, _nonSecure.nanoid)()}`
67
+ };
68
+ },
69
+ actionCreators: BottomSheetActions
70
+ };
71
+ }
72
+ //# sourceMappingURL=router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_native","require","_nonSecure","BottomSheetActions","exports","StackActions","snapTo","index","type","BottomSheetRouter","routerOptions","baseRouter","StackRouter","getInitialState","options","state","stale","key","nanoid","getStateForAction","action","target","source","routes","findIndex","r","map","route","i","snapToIndex","getRehydratedState","partialState","routeNames","routeParamList","routeGetIdList","actionCreators"],"sourceRoot":"../../../src","sources":["router/router.ts"],"mappings":";;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAQA,IAAAC,UAAA,GAAAD,OAAA;AAeO,MAAME,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG;EAC9B,GAAGE,oBAAY;EACfC,MAAMA,CAACC,KAAa,EAAyB;IACzC,OAAO;MAAEC,IAAI,EAAE,SAAS;MAAED;IAAM,CAAC;EACrC;AACJ,CAAC;AAEM,SAASE,iBAAiBA,CAC7BC,aAAiC,EACuC;EACxE,MAAMC,UAAU,GAAG,IAAAC,mBAAW,EAACF,aAAa,CAG3C;EACD,OAAO;IACH,GAAGC,UAAU;IACbH,IAAI,EAAE,cAAc;IACpBK,eAAeA,CAACC,OAAO,EAAE;MACrB,MAAMC,KAAK,GAAGJ,UAAU,CAACE,eAAe,CAACC,OAAO,CAAC;MAEjD,OAAO;QACH,GAAGC,KAAK;QACRC,KAAK,EAAE,KAAK;QACZR,IAAI,EAAE,cAAc;QACpBS,GAAG,EAAE,gBAAgB,IAAAC,iBAAM,EAAC,CAAC;MACjC,CAAC;IACL,CAAC;IACDC,iBAAiBA,CAACJ,KAAK,EAAEK,MAAM,EAAEN,OAAO,EAAE;MACtC,QAAQM,MAAM,CAACZ,IAAI;QACf,KAAK,SAAS;UAAE;YACZ,MAAMD,KAAK,GACPa,MAAM,CAACC,MAAM,KAAKN,KAAK,CAACE,GAAG,IAAIG,MAAM,CAACE,MAAM,GACtCP,KAAK,CAACQ,MAAM,CAACC,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACR,GAAG,KAAKG,MAAM,CAACE,MAAM,CAAC,GACtDP,KAAK,CAACR,KAAK;YAErB,OAAO;cACH,GAAGQ,KAAK;cACRQ,MAAM,EAAER,KAAK,CAACQ,MAAM,CAACG,GAAG,CAAC,CAACC,KAAK,EAAEC,CAAC,KAC9BA,CAAC,KAAKrB,KAAK,GACL;gBACI,GAAGoB,KAAK;gBACRE,WAAW,EAAET,MAAM,CAACb;cACxB,CAAC,GACDoB,KACV;YACJ,CAAC;UACL;QACA;UACI,OAAOhB,UAAU,CAACQ,iBAAiB,CAACJ,KAAK,EAAEK,MAAM,EAAEN,OAAO,CAAC;MACnE;IACJ,CAAC;IACDgB,kBAAkBA,CAACC,YAAY,EAAE;MAAEC,UAAU;MAAEC,cAAc;MAAEC;IAAe,CAAC,EAAE;MAC7E,IAAIH,YAAY,CAACf,KAAK,KAAK,KAAK,EAAE;QAC9B,OAAOe,YAAY;MACvB;MAEA,MAAMhB,KAAK,GAAGJ,UAAU,CAACmB,kBAAkB,CAACC,YAAY,EAAE;QACtDC,UAAU;QACVC,cAAc;QACdC;MACJ,CAAC,CAAC;MAEF,OAAO;QACH,GAAGnB,KAAK;QACRP,IAAI,EAAE,cAAc;QACpBS,GAAG,EAAE,gBAAgB,IAAAC,iBAAM,EAAC,CAAC;MACjC,CAAC;IACL,CAAC;IACDiB,cAAc,EAAEhC;EACpB,CAAC;AACL","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["router/types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.BottomSheetView = BottomSheetView;
7
+ var _bottomSheet = require("@gorhom/bottom-sheet");
8
+ var _native = require("@react-navigation/native");
9
+ var React = _interopRequireWildcard(require("react"));
10
+ var _reactNative = require("react-native");
11
+ var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
12
+ var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
13
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
15
+ function BottomSheetModalScreen({
16
+ index,
17
+ navigation,
18
+ clickThrough,
19
+ iosModalSheetTypeOfAnimation,
20
+ opacity,
21
+ children,
22
+ ...props
23
+ }) {
24
+ const ref = React.useRef(null);
25
+ const lastIndexRef = React.useRef(index);
26
+
27
+ // Present on mount.
28
+ React.useEffect(() => {
29
+ ref.current?.present();
30
+ }, []);
31
+ const isMounted = React.useRef(true);
32
+ React.useEffect(() => {
33
+ return () => {
34
+ isMounted.current = false;
35
+ };
36
+ }, []);
37
+ React.useEffect(() => {
38
+ if (index != null && lastIndexRef.current !== index) {
39
+ ref.current?.snapToIndex(index);
40
+ }
41
+ }, [index]);
42
+ const onChange = React.useCallback(newIndex => {
43
+ const currentIndex = lastIndexRef.current;
44
+ lastIndexRef.current = newIndex;
45
+ if (newIndex >= 0 && newIndex !== currentIndex) {
46
+ navigation.snapTo(newIndex);
47
+ }
48
+ }, [navigation]);
49
+ const onDismiss = React.useCallback(() => {
50
+ // BottomSheetModal will call onDismiss on unmount, be we do not want that since
51
+ // we already popped the screen.
52
+ if (isMounted.current) {
53
+ navigation.goBack();
54
+ }
55
+ }, [navigation]);
56
+ return /*#__PURE__*/React.createElement(_bottomSheet.BottomSheetModal, _extends({
57
+ ref: ref,
58
+ onDismiss: onDismiss,
59
+ onChange: onChange,
60
+ index: index,
61
+ backdropComponent: props => /*#__PURE__*/React.createElement(_bottomSheet.BottomSheetBackdrop, _extends({}, props, {
62
+ appearsOnIndex: 0,
63
+ disappearsOnIndex: -1,
64
+ enableTouchThrough: !!clickThrough,
65
+ opacity: opacity || 0.45
66
+ }))
67
+ }, props), children);
68
+ }
69
+ const DEFAULT_SNAP_POINTS = ["66%"];
70
+ function BottomSheetView({
71
+ state,
72
+ descriptors
73
+ }) {
74
+ const {
75
+ colors
76
+ } = (0, _native.useTheme)();
77
+ const {
78
+ top
79
+ } = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)();
80
+ const themeBackgroundStyle = React.useMemo(() => ({
81
+ backgroundColor: colors.card
82
+ }), [colors.card]);
83
+ const themeHandleIndicatorStyle = React.useMemo(() => ({
84
+ backgroundColor: colors.border,
85
+ height: 5,
86
+ width: 50
87
+ }), [colors.border]);
88
+
89
+ // IOS modal sheet type of animation
90
+ const isFullScreen = (0, _reactNativeReanimated.useSharedValue)(0);
91
+ const colorStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
92
+ flex: 1,
93
+ backgroundColor: (0, _reactNativeReanimated.interpolateColor)(isFullScreen.value, [0, 1], ["transparent", "#000"])
94
+ }));
95
+ const animatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
96
+ flex: 1,
97
+ transform: [{
98
+ scaleX: (0, _reactNativeReanimated.withSpring)((0, _reactNativeReanimated.interpolate)(isFullScreen.value, [0, 1], [1, 0.92]), {
99
+ damping: 15,
100
+ stiffness: 100
101
+ })
102
+ }, {
103
+ translateY: (0, _reactNativeReanimated.withSpring)((0, _reactNativeReanimated.interpolate)(isFullScreen.value, [0, 1], [0, top + 5]), {
104
+ damping: 15,
105
+ stiffness: 100
106
+ })
107
+ }]
108
+ }));
109
+
110
+ // Since background color is white, we need to set status bar to light
111
+ const setStatusBar = _reactNative.StatusBar.setBarStyle;
112
+ (0, _reactNativeReanimated.useAnimatedReaction)(() => isFullScreen.value, currentValue => {
113
+ "worklet";
114
+
115
+ if (currentValue > -1) {
116
+ (0, _reactNativeReanimated.runOnJS)(setStatusBar)(currentValue >= 0.5 ? "light-content" : "default");
117
+ }
118
+ }, []);
119
+
120
+ // Avoid rendering provider if we only have one screen.
121
+ const shouldRenderProvider = React.useRef(false);
122
+ shouldRenderProvider.current = shouldRenderProvider.current || state.routes.length > 1;
123
+ const firstRoute = state.routes[0];
124
+ if (!firstRoute) {
125
+ // no routes at all, probably shouldn't happen, but let's be defensive
126
+ return null;
127
+ }
128
+ const firstDescriptor = descriptors[firstRoute.key];
129
+ if (!firstDescriptor) {
130
+ // if we don't have a descriptor for the first route, bail out
131
+ return null;
132
+ }
133
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_reactNativeReanimated.default.View, {
134
+ style: colorStyle
135
+ }, /*#__PURE__*/React.createElement(_reactNativeReanimated.default.View, {
136
+ style: animatedStyle
137
+ }, firstDescriptor.render?.())), shouldRenderProvider.current && /*#__PURE__*/React.createElement(_bottomSheet.BottomSheetModalProvider, null, state.routes.slice(1).map(route => {
138
+ const descriptor = descriptors[route.key];
139
+ if (!descriptor) return null;
140
+ const {
141
+ options,
142
+ navigation,
143
+ render
144
+ } = descriptor;
145
+ const {
146
+ index,
147
+ snapPoints,
148
+ handleStyle,
149
+ backgroundStyle,
150
+ handleIndicatorStyle,
151
+ enableDynamicSizing,
152
+ ...sheetProps
153
+ } = options;
154
+ return /*#__PURE__*/React.createElement(BottomSheetModalScreen, _extends({
155
+ key: route.key
156
+ // Make sure index is in range, it could be out if snapToIndex is persisted
157
+ // and snapPoints is changed.
158
+ ,
159
+ index: Math.min(route.snapToIndex ?? index ?? 0, !!snapPoints ? snapPoints.length - 1 : 0),
160
+ snapPoints: !snapPoints && !enableDynamicSizing ? DEFAULT_SNAP_POINTS : snapPoints,
161
+ onAnimate: (_, to) => {
162
+ // @ts-ignore TODO: Fix types
163
+ isFullScreen.value = ["%100", "100%"].includes(snapPoints?.[to]) ? 1 : 0;
164
+ },
165
+ animationConfigs: {
166
+ duration: 300,
167
+ easing: _reactNativeReanimated.Easing.bezier(0.25, 0.1, 0.25, 1)
168
+ },
169
+ topInset: top + 18,
170
+ navigation: navigation,
171
+ enableDynamicSizing: enableDynamicSizing,
172
+ backgroundStyle: [themeBackgroundStyle, backgroundStyle],
173
+ handleIndicatorStyle: [themeHandleIndicatorStyle, handleIndicatorStyle],
174
+ handleStyle: [themeBackgroundStyle, {
175
+ borderRadius: 20
176
+ }, handleStyle]
177
+ }, sheetProps), render?.());
178
+ })));
179
+ }
180
+ //# sourceMappingURL=view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_bottomSheet","require","_native","React","_interopRequireWildcard","_reactNative","_reactNativeReanimated","_reactNativeSafeAreaContext","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","BottomSheetModalScreen","index","navigation","clickThrough","iosModalSheetTypeOfAnimation","opacity","children","props","ref","useRef","lastIndexRef","useEffect","current","present","isMounted","snapToIndex","onChange","useCallback","newIndex","currentIndex","snapTo","onDismiss","goBack","createElement","BottomSheetModal","backdropComponent","BottomSheetBackdrop","appearsOnIndex","disappearsOnIndex","enableTouchThrough","DEFAULT_SNAP_POINTS","BottomSheetView","state","descriptors","colors","useTheme","top","useSafeAreaInsets","themeBackgroundStyle","useMemo","backgroundColor","card","themeHandleIndicatorStyle","border","height","width","isFullScreen","useSharedValue","colorStyle","useAnimatedStyle","flex","interpolateColor","value","animatedStyle","transform","scaleX","withSpring","interpolate","damping","stiffness","translateY","setStatusBar","StatusBar","setBarStyle","useAnimatedReaction","currentValue","runOnJS","shouldRenderProvider","routes","firstRoute","firstDescriptor","key","Fragment","View","style","render","BottomSheetModalProvider","slice","map","route","descriptor","options","snapPoints","handleStyle","backgroundStyle","handleIndicatorStyle","enableDynamicSizing","sheetProps","Math","min","onAnimate","_","to","includes","animationConfigs","duration","easing","Easing","bezier","topInset","borderRadius"],"sourceRoot":"../../../src","sources":["router/view.tsx"],"mappings":"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","ignoreList":[]}