@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.
- package/LICENSE +21 -0
- package/README.md +147 -0
- package/lib/commonjs/events.js +35 -0
- package/lib/commonjs/events.js.map +1 -0
- package/lib/commonjs/index.js +85 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/manager.js +171 -0
- package/lib/commonjs/manager.js.map +1 -0
- package/lib/commonjs/provider.js +229 -0
- package/lib/commonjs/provider.js.map +1 -0
- package/lib/commonjs/router/index.js +100 -0
- package/lib/commonjs/router/index.js.map +1 -0
- package/lib/commonjs/router/router.js +72 -0
- package/lib/commonjs/router/router.js.map +1 -0
- package/lib/commonjs/router/types.js +6 -0
- package/lib/commonjs/router/types.js.map +1 -0
- package/lib/commonjs/router/view.js +180 -0
- package/lib/commonjs/router/view.js.map +1 -0
- package/lib/commonjs/sheet.js +240 -0
- package/lib/commonjs/sheet.js.map +1 -0
- package/lib/commonjs/types.js +6 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/module/events.js +29 -0
- package/lib/module/events.js.map +1 -0
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/manager.js +165 -0
- package/lib/module/manager.js.map +1 -0
- package/lib/module/provider.js +210 -0
- package/lib/module/provider.js.map +1 -0
- package/lib/module/router/index.js +79 -0
- package/lib/module/router/index.js.map +1 -0
- package/lib/module/router/router.js +65 -0
- package/lib/module/router/router.js.map +1 -0
- package/lib/module/router/types.js +2 -0
- package/lib/module/router/types.js.map +1 -0
- package/lib/module/router/view.js +173 -0
- package/lib/module/router/view.js.map +1 -0
- package/lib/module/sheet.js +232 -0
- package/lib/module/sheet.js.map +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/typescript/events.d.ts +16 -0
- package/lib/typescript/events.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +6 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/manager.d.ts +78 -0
- package/lib/typescript/manager.d.ts.map +1 -0
- package/lib/typescript/provider.d.ts +69 -0
- package/lib/typescript/provider.d.ts.map +1 -0
- package/lib/typescript/router/index.d.ts +59 -0
- package/lib/typescript/router/index.d.ts.map +1 -0
- package/lib/typescript/router/router.d.ts +47 -0
- package/lib/typescript/router/router.d.ts.map +1 -0
- package/lib/typescript/router/types.d.ts +46 -0
- package/lib/typescript/router/types.d.ts.map +1 -0
- package/lib/typescript/router/view.d.ts +11 -0
- package/lib/typescript/router/view.d.ts.map +1 -0
- package/lib/typescript/sheet.d.ts +19 -0
- package/lib/typescript/sheet.d.ts.map +1 -0
- package/lib/typescript/types.d.ts +125 -0
- package/lib/typescript/types.d.ts.map +1 -0
- package/package.json +102 -0
- package/src/events.ts +40 -0
- package/src/index.ts +11 -0
- package/src/manager.ts +223 -0
- package/src/provider.tsx +293 -0
- package/src/router/index.tsx +130 -0
- package/src/router/router.ts +94 -0
- package/src/router/types.ts +117 -0
- package/src/router/view.tsx +265 -0
- package/src/sheet.tsx +350 -0
- package/src/types.ts +153 -0
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _bottomSheet = _interopRequireWildcard(require("@gorhom/bottom-sheet"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _reactNativeReanimated = require("react-native-reanimated");
|
|
10
|
+
var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
|
|
11
|
+
var _native = require("@react-navigation/native");
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
var _provider = require("./provider");
|
|
14
|
+
var _manager = require("./manager");
|
|
15
|
+
var _events = require("./events");
|
|
16
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
|
+
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); }
|
|
18
|
+
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); }
|
|
19
|
+
const useSheetManager = ({
|
|
20
|
+
id,
|
|
21
|
+
onHide,
|
|
22
|
+
onBeforeShow,
|
|
23
|
+
onContextUpdate
|
|
24
|
+
}) => {
|
|
25
|
+
const [visible, setVisible] = _react.default.useState(false);
|
|
26
|
+
const currentContext = (0, _provider.useProviderContext)();
|
|
27
|
+
_react.default.useEffect(() => {
|
|
28
|
+
if (!id) return undefined;
|
|
29
|
+
const subscriptions = [_events.eventManager.subscribe(`show_${id}`, (data, context) => {
|
|
30
|
+
if (currentContext !== context || visible) return;
|
|
31
|
+
onContextUpdate?.();
|
|
32
|
+
onBeforeShow?.(data);
|
|
33
|
+
setVisible(true);
|
|
34
|
+
}), _events.eventManager.subscribe(`hide_${id}`, (data, context, dismiss) => {
|
|
35
|
+
if (currentContext !== context) return;
|
|
36
|
+
onHide?.(data, dismiss);
|
|
37
|
+
})];
|
|
38
|
+
return () => {
|
|
39
|
+
subscriptions.forEach(s => s?.unsubscribe?.());
|
|
40
|
+
};
|
|
41
|
+
}, [id, onHide, onBeforeShow, onContextUpdate, currentContext]);
|
|
42
|
+
return {
|
|
43
|
+
visible,
|
|
44
|
+
setVisible
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
const BottomSheetComponent = /*#__PURE__*/_react.default.forwardRef(({
|
|
48
|
+
children,
|
|
49
|
+
snapPoints,
|
|
50
|
+
onClose,
|
|
51
|
+
onBeforeShow,
|
|
52
|
+
stackBehavior = "switch",
|
|
53
|
+
hardwareBackPressToClose = true,
|
|
54
|
+
enableDynamicSizing = false,
|
|
55
|
+
handleIndicatorStyle,
|
|
56
|
+
iosModalSheetTypeOfAnimation: pageAnimation,
|
|
57
|
+
backgroundStyle,
|
|
58
|
+
handleStyle,
|
|
59
|
+
clickThrough,
|
|
60
|
+
fullScreen,
|
|
61
|
+
opacity,
|
|
62
|
+
...props
|
|
63
|
+
}, ref) => {
|
|
64
|
+
const currentSheetRef = (0, _provider.useSheetRef)();
|
|
65
|
+
const currentCtx = (0, _provider.useProviderContext)();
|
|
66
|
+
const {
|
|
67
|
+
isFullScreen,
|
|
68
|
+
iosModalSheetTypeOfAnimation
|
|
69
|
+
} = (0, _provider.useSheetAnimationContext)();
|
|
70
|
+
const animatedIndex = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
71
|
+
const {
|
|
72
|
+
colors
|
|
73
|
+
} = (0, _native.useTheme)();
|
|
74
|
+
const {
|
|
75
|
+
top
|
|
76
|
+
} = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)();
|
|
77
|
+
const themeBackgroundStyle = _react.default.useMemo(() => ({
|
|
78
|
+
backgroundColor: colors.card
|
|
79
|
+
}), [colors.card]);
|
|
80
|
+
const themeHandleIndicatorStyle = _react.default.useMemo(() => ({
|
|
81
|
+
backgroundColor: colors.border,
|
|
82
|
+
height: 5,
|
|
83
|
+
width: 50
|
|
84
|
+
}), [colors.border]);
|
|
85
|
+
const valueRef = _react.default.useRef(null);
|
|
86
|
+
const bottomSheetRef = _react.default.useRef(null);
|
|
87
|
+
const hardwareBackPressEvent = _react.default.useRef(null);
|
|
88
|
+
const id = (0, _provider.useSheetIDContext)();
|
|
89
|
+
const sheetId = props.id || id;
|
|
90
|
+
useSheetManager({
|
|
91
|
+
id: sheetId,
|
|
92
|
+
onHide: (data, dismiss) => hideSheet(data, true, dismiss),
|
|
93
|
+
onBeforeShow: data => {
|
|
94
|
+
onBeforeShow?.(data);
|
|
95
|
+
valueRef.current = undefined;
|
|
96
|
+
currentSheetRef.current = getInstance();
|
|
97
|
+
},
|
|
98
|
+
onContextUpdate: () => {
|
|
99
|
+
if (sheetId) {
|
|
100
|
+
_manager.PrivateManager.add(sheetId, currentCtx);
|
|
101
|
+
_manager.PrivateManager.registerRef(sheetId, currentCtx, {
|
|
102
|
+
current: getInstance()
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
(0, _reactNativeReanimated.useAnimatedReaction)(() => {
|
|
108
|
+
if (!!iosModalSheetTypeOfAnimation || !!pageAnimation) {
|
|
109
|
+
isFullScreen.value = 0;
|
|
110
|
+
}
|
|
111
|
+
return animatedIndex.value;
|
|
112
|
+
}, index => {
|
|
113
|
+
"worklet";
|
|
114
|
+
|
|
115
|
+
const points = ["%100", "100%"];
|
|
116
|
+
const checkFullScreen = fullScreen ? -1 : snapPoints instanceof Array ? snapPoints.findIndex(p => points.includes(p)) : snapPoints?.value?.findIndex(p => points.includes(p)) || -1;
|
|
117
|
+
if (-1 !== checkFullScreen && (!!iosModalSheetTypeOfAnimation || !!pageAnimation)) {
|
|
118
|
+
isFullScreen.value = (0, _reactNativeReanimated.interpolate)(index, [checkFullScreen - 1, checkFullScreen], [0, 1]);
|
|
119
|
+
}
|
|
120
|
+
}, [snapPoints]);
|
|
121
|
+
const hideSheet = _react.default.useCallback((data, isSheetManagerOrRef, dismiss) => {
|
|
122
|
+
const value = data ?? valueRef.current;
|
|
123
|
+
if (!dismiss || stackBehavior !== "push") {
|
|
124
|
+
hardwareBackPressEvent.current?.remove();
|
|
125
|
+
bottomSheetRef.current?.close();
|
|
126
|
+
onClose?.(value);
|
|
127
|
+
}
|
|
128
|
+
if (sheetId) {
|
|
129
|
+
_manager.PrivateManager.remove(sheetId, currentCtx);
|
|
130
|
+
if (dismiss && stackBehavior === "push") return;
|
|
131
|
+
const history = _manager.PrivateManager.history.length >= 1;
|
|
132
|
+
_events.eventManager.publish(`onclose_${sheetId}`, value, currentCtx, history || dismiss);
|
|
133
|
+
if (stackBehavior === "replace") return;
|
|
134
|
+
if (dismiss) {
|
|
135
|
+
_manager.PrivateManager.history.push({
|
|
136
|
+
id: sheetId,
|
|
137
|
+
context: currentCtx
|
|
138
|
+
});
|
|
139
|
+
} else if (history) {
|
|
140
|
+
const {
|
|
141
|
+
id,
|
|
142
|
+
context
|
|
143
|
+
} = _manager.PrivateManager.history.pop();
|
|
144
|
+
_events.eventManager.publish(`show_wrap_${id}`, undefined, context, true);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
if (isSheetManagerOrRef) valueRef.current = data;
|
|
148
|
+
}, [sheetId, currentCtx, onClose]);
|
|
149
|
+
const getInstance = _react.default.useCallback(() => ({
|
|
150
|
+
close(options = {}) {
|
|
151
|
+
valueRef.current = options.value;
|
|
152
|
+
bottomSheetRef.current?.close(options?.animationConfigs);
|
|
153
|
+
},
|
|
154
|
+
expand(animationConfigs) {
|
|
155
|
+
bottomSheetRef.current?.expand(animationConfigs);
|
|
156
|
+
},
|
|
157
|
+
collapse(animationConfigs) {
|
|
158
|
+
bottomSheetRef.current?.collapse(animationConfigs);
|
|
159
|
+
},
|
|
160
|
+
snapToIndex(index, animationConfigs) {
|
|
161
|
+
bottomSheetRef.current?.snapToIndex(index, animationConfigs);
|
|
162
|
+
},
|
|
163
|
+
snapToPosition(position, animationConfigs) {
|
|
164
|
+
bottomSheetRef.current?.snapToPosition(position, animationConfigs);
|
|
165
|
+
}
|
|
166
|
+
}), []);
|
|
167
|
+
_react.default.useEffect(() => {
|
|
168
|
+
if (sheetId) {
|
|
169
|
+
_manager.PrivateManager.registerRef(sheetId, currentCtx, {
|
|
170
|
+
current: getInstance()
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
currentSheetRef.current = getInstance();
|
|
174
|
+
}, [currentCtx, getInstance, sheetId, currentSheetRef]);
|
|
175
|
+
_react.default.useEffect(() => {
|
|
176
|
+
if (_reactNative.Platform.OS === "android" && hardwareBackPressToClose) {
|
|
177
|
+
hardwareBackPressEvent.current = _reactNative.BackHandler.addEventListener("hardwareBackPress", () => {
|
|
178
|
+
bottomSheetRef.current?.close();
|
|
179
|
+
return true;
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
return () => hardwareBackPressEvent.current?.remove();
|
|
183
|
+
}, [hardwareBackPressToClose]);
|
|
184
|
+
_react.default.useImperativeHandle(ref, getInstance, [getInstance]);
|
|
185
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
186
|
+
pointerEvents: "box-none",
|
|
187
|
+
style: [_reactNative.StyleSheet.absoluteFill, {
|
|
188
|
+
zIndex: sheetId && stackBehavior === "push" ? _manager.PrivateManager.zIndex(sheetId, currentCtx) : 0
|
|
189
|
+
}]
|
|
190
|
+
}, /*#__PURE__*/_react.default.createElement(_bottomSheet.default, _extends({
|
|
191
|
+
enableDynamicSizing: enableDynamicSizing,
|
|
192
|
+
animationConfigs: {
|
|
193
|
+
duration: 400,
|
|
194
|
+
easing: _reactNativeReanimated.Easing.bezier(0.25, 0.1, 0.25, 1)
|
|
195
|
+
},
|
|
196
|
+
backdropComponent: props => /*#__PURE__*/_react.default.createElement(_bottomSheet.BottomSheetBackdrop, _extends({
|
|
197
|
+
enableTouchThrough: !!clickThrough,
|
|
198
|
+
opacity: opacity || 0.45,
|
|
199
|
+
disappearsOnIndex: -1,
|
|
200
|
+
appearsOnIndex: 0
|
|
201
|
+
}, props))
|
|
202
|
+
}, props, {
|
|
203
|
+
ref: bottomSheetRef,
|
|
204
|
+
onClose: hideSheet,
|
|
205
|
+
animatedIndex: animatedIndex,
|
|
206
|
+
topInset: fullScreen ? 0 : top + (iosModalSheetTypeOfAnimation || pageAnimation ? 20 : 5),
|
|
207
|
+
snapPoints: enableDynamicSizing ? undefined : snapPoints ?? ["66%"],
|
|
208
|
+
handleIndicatorStyle: [themeHandleIndicatorStyle, handleIndicatorStyle],
|
|
209
|
+
backgroundStyle: [themeBackgroundStyle, backgroundStyle],
|
|
210
|
+
handleStyle: [themeBackgroundStyle, handleStyle]
|
|
211
|
+
}), children));
|
|
212
|
+
});
|
|
213
|
+
const BottomSheet = /*#__PURE__*/_react.default.memo(BottomSheetComponent);
|
|
214
|
+
BottomSheet.displayName = "BottomSheet";
|
|
215
|
+
BottomSheet.View = _bottomSheet.BottomSheetView;
|
|
216
|
+
BottomSheet.ScrollView = _bottomSheet.BottomSheetScrollView;
|
|
217
|
+
BottomSheet.FlatList = _bottomSheet.BottomSheetFlatList;
|
|
218
|
+
BottomSheet.SectionList = _bottomSheet.BottomSheetSectionList;
|
|
219
|
+
BottomSheet.VirtualizedList = _bottomSheet.BottomSheetVirtualizedList;
|
|
220
|
+
BottomSheet.Handle = _bottomSheet.BottomSheetHandle;
|
|
221
|
+
BottomSheet.Footer = _bottomSheet.BottomSheetFooter;
|
|
222
|
+
BottomSheet.FooterContainer = _bottomSheet.BottomSheetFooterContainer;
|
|
223
|
+
BottomSheet.Backdrop = _bottomSheet.BottomSheetBackdrop;
|
|
224
|
+
BottomSheet.TextInput = _bottomSheet.BottomSheetTextInput;
|
|
225
|
+
try {
|
|
226
|
+
const {
|
|
227
|
+
cssInterop
|
|
228
|
+
} = require("nativewind");
|
|
229
|
+
cssInterop(BottomSheet, {
|
|
230
|
+
handleIndicatorClassName: "handleIndicatorStyle",
|
|
231
|
+
backgroundClassName: "backgroundStyle",
|
|
232
|
+
containerClassName: "containerStyle",
|
|
233
|
+
handleClassName: "handleStyle",
|
|
234
|
+
className: "style"
|
|
235
|
+
});
|
|
236
|
+
} catch (e) {
|
|
237
|
+
// Ignore error
|
|
238
|
+
}
|
|
239
|
+
var _default = exports.default = BottomSheet;
|
|
240
|
+
//# sourceMappingURL=sheet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_bottomSheet","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_reactNativeSafeAreaContext","_native","_react","_interopRequireDefault","_provider","_manager","_events","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","useSheetManager","id","onHide","onBeforeShow","onContextUpdate","visible","setVisible","React","useState","currentContext","useProviderContext","useEffect","undefined","subscriptions","eventManager","subscribe","data","context","dismiss","forEach","s","unsubscribe","BottomSheetComponent","forwardRef","children","snapPoints","onClose","stackBehavior","hardwareBackPressToClose","enableDynamicSizing","handleIndicatorStyle","iosModalSheetTypeOfAnimation","pageAnimation","backgroundStyle","handleStyle","clickThrough","fullScreen","opacity","props","ref","currentSheetRef","useSheetRef","currentCtx","isFullScreen","useSheetAnimationContext","animatedIndex","useSharedValue","colors","useTheme","top","useSafeAreaInsets","themeBackgroundStyle","useMemo","backgroundColor","card","themeHandleIndicatorStyle","border","height","width","valueRef","useRef","bottomSheetRef","hardwareBackPressEvent","useSheetIDContext","sheetId","hideSheet","current","getInstance","PrivateManager","add","registerRef","useAnimatedReaction","value","index","points","checkFullScreen","Array","findIndex","p","includes","interpolate","useCallback","isSheetManagerOrRef","remove","close","history","publish","push","pop","options","animationConfigs","expand","collapse","snapToIndex","snapToPosition","position","Platform","OS","BackHandler","addEventListener","useImperativeHandle","createElement","View","pointerEvents","style","StyleSheet","absoluteFill","zIndex","duration","easing","Easing","bezier","backdropComponent","BottomSheetBackdrop","enableTouchThrough","disappearsOnIndex","appearsOnIndex","topInset","BottomSheet","memo","displayName","BottomSheetView","ScrollView","BottomSheetScrollView","FlatList","BottomSheetFlatList","SectionList","BottomSheetSectionList","VirtualizedList","BottomSheetVirtualizedList","Handle","BottomSheetHandle","Footer","BottomSheetFooter","FooterContainer","BottomSheetFooterContainer","Backdrop","TextInput","BottomSheetTextInput","cssInterop","handleIndicatorClassName","backgroundClassName","containerClassName","handleClassName","className","_default","exports"],"sourceRoot":"../../src","sources":["sheet.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { DeviceEventEmitter, NativeAppEventEmitter, Platform } from "react-native";
|
|
2
|
+
|
|
3
|
+
/* eslint-disable curly */
|
|
4
|
+
|
|
5
|
+
export default class EventManager {
|
|
6
|
+
constructor() {
|
|
7
|
+
this._registry = Platform.select({
|
|
8
|
+
ios: NativeAppEventEmitter,
|
|
9
|
+
android: DeviceEventEmitter
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
subscribe(name, handler) {
|
|
13
|
+
if (!name || !handler) throw new Error("name and handler are required.");
|
|
14
|
+
const event = this._registry?.addListener(name, handler);
|
|
15
|
+
return {
|
|
16
|
+
unsubscribe: () => event?.remove()
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
publish(name, ...args) {
|
|
20
|
+
this._registry?.emit(name, ...args);
|
|
21
|
+
}
|
|
22
|
+
remove(...names) {
|
|
23
|
+
for (const eventType of names) {
|
|
24
|
+
this._registry?.removeAllListeners(eventType);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export const eventManager = new EventManager();
|
|
29
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DeviceEventEmitter","NativeAppEventEmitter","Platform","EventManager","constructor","_registry","select","ios","android","subscribe","name","handler","Error","event","addListener","unsubscribe","remove","publish","args","emit","names","eventType","removeAllListeners","eventManager"],"sourceRoot":"../../src","sources":["events.ts"],"mappings":"AAAA,SACIA,kBAAkB,EAClBC,qBAAqB,EAErBC,QAAQ,QACL,cAAc;;AAErB;;AAMA,eAAe,MAAMC,YAAY,CAAC;EAE9BC,WAAWA,CAAA,EAAG;IACV,IAAI,CAACC,SAAS,GAAGH,QAAQ,CAACI,MAAM,CAAC;MAC7BC,GAAG,EAAEN,qBAAqB;MAC1BO,OAAO,EAAER;IACb,CAAC,CAAC;EACN;EAEAS,SAASA,CAACC,IAAY,EAAEC,OAAqB,EAAE;IAC3C,IAAI,CAACD,IAAI,IAAI,CAACC,OAAO,EAAE,MAAM,IAAIC,KAAK,CAAC,gCAAgC,CAAC;IACxE,MAAMC,KAAK,GAAG,IAAI,CAACR,SAAS,EAAES,WAAW,CAACJ,IAAI,EAAEC,OAAO,CAAC;IACxD,OAAO;MAAEI,WAAW,EAAEA,CAAA,KAAMF,KAAK,EAAEG,MAAM,CAAC;IAAE,CAAC;EACjD;EAEAC,OAAOA,CAACP,IAAY,EAAE,GAAGQ,IAAW,EAAE;IAClC,IAAI,CAACb,SAAS,EAAEc,IAAI,CAACT,IAAI,EAAE,GAAGQ,IAAI,CAAC;EACvC;EAEAF,MAAMA,CAAC,GAAGI,KAAe,EAAE;IACvB,KAAK,MAAMC,SAAS,IAAID,KAAK,EAAE;MAC3B,IAAI,CAACf,SAAS,EAAEiB,kBAAkB,CAACD,SAAS,CAAC;IACjD;EACJ;AACJ;AAEA,OAAO,MAAME,YAAY,GAAG,IAAIpB,YAAY,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { default as BottomSheet } from "./sheet";
|
|
2
|
+
export { SheetManager } from "./manager";
|
|
3
|
+
export * from "./router";
|
|
4
|
+
export * from "./types";
|
|
5
|
+
export { SheetProvider, useSheetPayload, useSheetRef, useOnSheet, registerSheet } from "./provider";
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["default","BottomSheet","SheetManager","SheetProvider","useSheetPayload","useSheetRef","useOnSheet","registerSheet"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,OAAO,IAAIC,WAAW,QAAQ,SAAS;AAChD,SAASC,YAAY,QAAQ,WAAW;AACxC,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,SACIC,aAAa,EACbC,eAAe,EACfC,WAAW,EACXC,UAAU,EACVC,aAAa,QACV,YAAY","ignoreList":[]}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { eventManager } from "./events";
|
|
2
|
+
import { providerRegistryStack, sheetsRegistry } from "./provider";
|
|
3
|
+
// Array of all the ids of Sheets currently rendered in the app.
|
|
4
|
+
const ids = [];
|
|
5
|
+
const keys = [];
|
|
6
|
+
const refs = {};
|
|
7
|
+
const DEFAULT_Z_INDEX = 999;
|
|
8
|
+
const makeKey = (id, context) => `${id}:${context}`;
|
|
9
|
+
export const PrivateManager = {
|
|
10
|
+
// Return to the previous sheet when the current sheet is closed.
|
|
11
|
+
history: [],
|
|
12
|
+
context(options) {
|
|
13
|
+
if (!options) options = {};
|
|
14
|
+
if (!options?.context) {
|
|
15
|
+
// If no context is provided, use to current top most context
|
|
16
|
+
// to render the sheet.
|
|
17
|
+
for (const context of providerRegistryStack.slice().reverse()) {
|
|
18
|
+
// We only automatically select nested sheet providers.
|
|
19
|
+
if (context.startsWith("$$-auto") && !context.includes(options?.id)) {
|
|
20
|
+
options.context = context;
|
|
21
|
+
break;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return options.context;
|
|
26
|
+
},
|
|
27
|
+
registerRef: (id, context, instance) => {
|
|
28
|
+
const key = makeKey(id, context);
|
|
29
|
+
refs[key] = instance;
|
|
30
|
+
keys.push(key);
|
|
31
|
+
},
|
|
32
|
+
/**
|
|
33
|
+
*
|
|
34
|
+
* Get internal ref of a sheet by the given id.
|
|
35
|
+
*
|
|
36
|
+
* @param id Id of the sheet
|
|
37
|
+
* @param context Context in which the sheet is rendered. Normally this function returns the top most rendered sheet ref automatically.
|
|
38
|
+
*/
|
|
39
|
+
get: (id, context) => {
|
|
40
|
+
if (!context) {
|
|
41
|
+
for (let ctx of providerRegistryStack.slice().reverse()) {
|
|
42
|
+
for (let _id in sheetsRegistry[ctx]) {
|
|
43
|
+
if (_id === id) {
|
|
44
|
+
context = ctx;
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return refs[makeKey(id, context)];
|
|
51
|
+
},
|
|
52
|
+
add: (id, context) => {
|
|
53
|
+
if (ids.indexOf(id) < 0) {
|
|
54
|
+
ids[ids.length] = makeKey(id, context);
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
remove: (id, context) => {
|
|
58
|
+
if (ids.indexOf(makeKey(id, context)) > -1) {
|
|
59
|
+
ids.splice(ids.indexOf(makeKey(id, context)));
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
zIndex: (id, context = "global") => {
|
|
63
|
+
const index = keys.indexOf(makeKey(id, context));
|
|
64
|
+
return index > -1 ? DEFAULT_Z_INDEX + index + 1 : DEFAULT_Z_INDEX;
|
|
65
|
+
},
|
|
66
|
+
stack: () => ids.map(id => {
|
|
67
|
+
return {
|
|
68
|
+
id: id.split(":")[0],
|
|
69
|
+
context: id.split(":")?.[1] || "global"
|
|
70
|
+
};
|
|
71
|
+
})
|
|
72
|
+
};
|
|
73
|
+
class _SheetManager {
|
|
74
|
+
/**
|
|
75
|
+
* Show the Modal Sheet with an id.
|
|
76
|
+
*
|
|
77
|
+
* @param id id of the Sheet to show
|
|
78
|
+
* @param options
|
|
79
|
+
*/
|
|
80
|
+
async show(id, options) {
|
|
81
|
+
return new Promise(resolve => {
|
|
82
|
+
const currentContext = PrivateManager.context({
|
|
83
|
+
...options,
|
|
84
|
+
id: id
|
|
85
|
+
});
|
|
86
|
+
const handler = (data, context = "global") => {
|
|
87
|
+
if (context !== "global" && currentContext && currentContext !== context) return;
|
|
88
|
+
options?.onClose?.(data);
|
|
89
|
+
sub?.unsubscribe();
|
|
90
|
+
resolve(data);
|
|
91
|
+
};
|
|
92
|
+
var sub = eventManager.subscribe(`onclose_${id}`, handler);
|
|
93
|
+
PrivateManager.stack().forEach(({
|
|
94
|
+
id,
|
|
95
|
+
context
|
|
96
|
+
}) => {
|
|
97
|
+
eventManager.publish(`hide_${id}`, undefined, context, true);
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
// Check if the sheet is registered with any `SheetProviders`.
|
|
101
|
+
let isRegisteredWithSheetProvider = false;
|
|
102
|
+
for (let ctx in sheetsRegistry) {
|
|
103
|
+
for (let _id in sheetsRegistry[ctx]) {
|
|
104
|
+
if (_id === id) {
|
|
105
|
+
isRegisteredWithSheetProvider = true;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
eventManager.publish(isRegisteredWithSheetProvider ? `show_wrap_${id}` : `show_${id}`, options?.payload, currentContext || "global");
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* An async hide function. This is useful when you want to show one Sheet after closing another.
|
|
115
|
+
*
|
|
116
|
+
* @param id id of the Sheet to show
|
|
117
|
+
* @param data
|
|
118
|
+
*/
|
|
119
|
+
async hide(id, options) {
|
|
120
|
+
let currentContext = PrivateManager.context({
|
|
121
|
+
...options,
|
|
122
|
+
id: id
|
|
123
|
+
});
|
|
124
|
+
return new Promise(resolve => {
|
|
125
|
+
let isRegisteredWithSheetProvider = false;
|
|
126
|
+
// Check if the sheet is registered with any `SheetProviders`
|
|
127
|
+
// and select the nearest context where sheet is registered.
|
|
128
|
+
|
|
129
|
+
for (const _id of ids) {
|
|
130
|
+
if (_id === `${id}:${currentContext}`) {
|
|
131
|
+
isRegisteredWithSheetProvider = true;
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
const hideHandler = (data, context = "global") => {
|
|
136
|
+
if (context !== "global" && currentContext && currentContext !== context) return;
|
|
137
|
+
sub?.unsubscribe();
|
|
138
|
+
resolve(data);
|
|
139
|
+
};
|
|
140
|
+
var sub = eventManager.subscribe(`onclose_${id}`, hideHandler);
|
|
141
|
+
eventManager.publish(isRegisteredWithSheetProvider ? `hide_wrap_${id}` : `hide_${id}`, options?.payload, !isRegisteredWithSheetProvider ? "global" : currentContext);
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Hide all the opened Sheets.
|
|
147
|
+
*
|
|
148
|
+
* @param id Hide all sheets for the specific id.
|
|
149
|
+
*/
|
|
150
|
+
hideAll(id) {
|
|
151
|
+
PrivateManager.stack().forEach(({
|
|
152
|
+
id: _id,
|
|
153
|
+
context
|
|
154
|
+
}) => {
|
|
155
|
+
if (id && !_id.startsWith(id)) return;
|
|
156
|
+
eventManager.publish(`hide_${_id}`, undefined, context);
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* SheetManager is used to imperatively show/hide any sheet with a unique id prop.
|
|
163
|
+
*/
|
|
164
|
+
export const SheetManager = new _SheetManager();
|
|
165
|
+
//# sourceMappingURL=manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["eventManager","providerRegistryStack","sheetsRegistry","ids","keys","refs","DEFAULT_Z_INDEX","makeKey","id","context","PrivateManager","history","options","slice","reverse","startsWith","includes","registerRef","instance","key","push","get","ctx","_id","add","indexOf","length","remove","splice","zIndex","index","stack","map","split","_SheetManager","show","Promise","resolve","currentContext","handler","data","onClose","sub","unsubscribe","subscribe","forEach","publish","undefined","isRegisteredWithSheetProvider","payload","hide","hideHandler","hideAll","SheetManager"],"sourceRoot":"../../src","sources":["manager.ts"],"mappings":"AAEA,SAASA,YAAY,QAAQ,UAAU;AACvC,SAASC,qBAAqB,EAAEC,cAAc,QAAQ,YAAY;AAGlE;AACA,MAAMC,GAAa,GAAG,EAAE;AACxB,MAAMC,IAAc,GAAG,EAAE;AACzB,MAAMC,IAAwD,GAAG,CAAC,CAAC;AACnE,MAAMC,eAAe,GAAG,GAAG;AAE3B,MAAMC,OAAO,GAAGA,CAACC,EAAU,EAAEC,OAAe,KAAK,GAAGD,EAAE,IAAIC,OAAO,EAAE;AAEnE,OAAO,MAAMC,cAAc,GAAG;EAC1B;EACAC,OAAO,EAAE,EAAuC;EAEhDF,OAAOA,CAACG,OAA2C,EAAE;IACjD,IAAI,CAACA,OAAO,EAAEA,OAAO,GAAG,CAAC,CAAC;IAC1B,IAAI,CAACA,OAAO,EAAEH,OAAO,EAAE;MACnB;MACA;MACA,KAAK,MAAMA,OAAO,IAAIR,qBAAqB,CAACY,KAAK,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,EAAE;QAC3D;QACA,IACIL,OAAO,CAACM,UAAU,CAAC,SAAS,CAAC,IAC7B,CAACN,OAAO,CAACO,QAAQ,CAACJ,OAAO,EAAEJ,EAAY,CAAC,EAC1C;UACEI,OAAO,CAACH,OAAO,GAAGA,OAAO;UACzB;QACJ;MACJ;IACJ;IACA,OAAOG,OAAO,CAACH,OAAO;EAC1B,CAAC;EAEDQ,WAAW,EAAEA,CACTT,EAAU,EACVC,OAAe,EACfS,QAAwC,KACvC;IACD,MAAMC,GAAG,GAAGZ,OAAO,CAACC,EAAE,EAAEC,OAAO,CAAC;IAChCJ,IAAI,CAACc,GAAG,CAAC,GAAGD,QAAQ;IACpBd,IAAI,CAACgB,IAAI,CAACD,GAAG,CAAC;EAClB,CAAC;EAED;AACJ;AACA;AACA;AACA;AACA;AACA;EACIE,GAAG,EAAEA,CACDb,EAA2B,EAC3BC,OAAgB,KAC0B;IAC1C,IAAI,CAACA,OAAO,EAAE;MACV,KAAK,IAAIa,GAAG,IAAIrB,qBAAqB,CAACY,KAAK,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,EAAE;QACrD,KAAK,IAAIS,GAAG,IAAIrB,cAAc,CAACoB,GAAG,CAAC,EAAE;UACjC,IAAIC,GAAG,KAAKf,EAAE,EAAE;YACZC,OAAO,GAAGa,GAAG;YACb;UACJ;QACJ;MACJ;IACJ;IACA,OAAOjB,IAAI,CAACE,OAAO,CAACC,EAAE,EAAEC,OAAQ,CAAC,CAAC;EACtC,CAAC;EAEDe,GAAG,EAAEA,CAAChB,EAAU,EAAEC,OAAe,KAAK;IAClC,IAAIN,GAAG,CAACsB,OAAO,CAACjB,EAAE,CAAC,GAAG,CAAC,EAAE;MACrBL,GAAG,CAACA,GAAG,CAACuB,MAAM,CAAC,GAAGnB,OAAO,CAACC,EAAE,EAAEC,OAAO,CAAC;IAC1C;EACJ,CAAC;EAEDkB,MAAM,EAAEA,CAACnB,EAAU,EAAEC,OAAe,KAAK;IACrC,IAAIN,GAAG,CAACsB,OAAO,CAAClB,OAAO,CAACC,EAAE,EAAEC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;MACxCN,GAAG,CAACyB,MAAM,CAACzB,GAAG,CAACsB,OAAO,CAAClB,OAAO,CAACC,EAAE,EAAEC,OAAO,CAAC,CAAC,CAAC;IACjD;EACJ,CAAC;EAEDoB,MAAM,EAAEA,CAACrB,EAAU,EAAEC,OAAe,GAAG,QAAQ,KAAa;IACxD,MAAMqB,KAAK,GAAG1B,IAAI,CAACqB,OAAO,CAAClB,OAAO,CAACC,EAAE,EAAEC,OAAO,CAAC,CAAC;IAChD,OAAOqB,KAAK,GAAG,CAAC,CAAC,GAAGxB,eAAe,GAAGwB,KAAK,GAAG,CAAC,GAAGxB,eAAe;EACrE,CAAC;EAEDyB,KAAK,EAAEA,CAAA,KACH5B,GAAG,CAAC6B,GAAG,CAAExB,EAAE,IAAK;IACZ,OAAO;MACHA,EAAE,EAAEA,EAAE,CAACyB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;MACpBxB,OAAO,EAAED,EAAE,CAACyB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI;IACnC,CAAC;EACL,CAAC;AACT,CAAC;AAED,MAAMC,aAAa,CAAC;EAChB;AACJ;AACA;AACA;AACA;AACA;EACI,MAAMC,IAAIA,CACN3B,EAA2B,EAC3BI,OAeC,EACsC;IACvC,OAAO,IAAIwB,OAAO,CAAEC,OAAO,IAAK;MAC5B,MAAMC,cAAc,GAAG5B,cAAc,CAACD,OAAO,CAAC;QAAE,GAAGG,OAAO;QAAEJ,EAAE,EAAEA;MAAG,CAAC,CAAC;MACrE,MAAM+B,OAAO,GAAGA,CAACC,IAAS,EAAE/B,OAAO,GAAG,QAAQ,KAAK;QAC/C,IAAIA,OAAO,KAAK,QAAQ,IAAI6B,cAAc,IAAIA,cAAc,KAAK7B,OAAO,EACpE;QACJG,OAAO,EAAE6B,OAAO,GAAGD,IAAI,CAAC;QACxBE,GAAG,EAAEC,WAAW,CAAC,CAAC;QAClBN,OAAO,CAACG,IAAI,CAAC;MACjB,CAAC;MAED,IAAIE,GAAG,GAAG1C,YAAY,CAAC4C,SAAS,CAAC,WAAWpC,EAAE,EAAE,EAAE+B,OAAO,CAAC;MAC1D7B,cAAc,CAACqB,KAAK,CAAC,CAAC,CAACc,OAAO,CAAC,CAAC;QAAErC,EAAE;QAAEC;MAAQ,CAAC,KAAK;QAChDT,YAAY,CAAC8C,OAAO,CAAC,QAAQtC,EAAE,EAAE,EAAEuC,SAAS,EAAEtC,OAAO,EAAE,IAAI,CAAC;MAChE,CAAC,CAAC;;MAEF;MACA,IAAIuC,6BAA6B,GAAG,KAAK;MACzC,KAAK,IAAI1B,GAAG,IAAIpB,cAAc,EAAE;QAC5B,KAAK,IAAIqB,GAAG,IAAIrB,cAAc,CAACoB,GAAG,CAAC,EAAE;UACjC,IAAIC,GAAG,KAAKf,EAAE,EAAE;YACZwC,6BAA6B,GAAG,IAAI;UACxC;QACJ;MACJ;MACAhD,YAAY,CAAC8C,OAAO,CAChBE,6BAA6B,GAAG,aAAaxC,EAAE,EAAE,GAAG,QAAQA,EAAE,EAAE,EAChEI,OAAO,EAAEqC,OAAO,EAChBX,cAAc,IAAI,QACtB,CAAC;IACL,CAAC,CAAC;EACN;;EAEA;AACJ;AACA;AACA;AACA;AACA;EACI,MAAMY,IAAIA,CACN1C,EAA2B,EAC3BI,OASC,EACsC;IACvC,IAAI0B,cAAc,GAAG5B,cAAc,CAACD,OAAO,CAAC;MACxC,GAAGG,OAAO;MACVJ,EAAE,EAAEA;IACR,CAAC,CAAC;IACF,OAAO,IAAI4B,OAAO,CAAEC,OAAO,IAAK;MAC5B,IAAIW,6BAA6B,GAAG,KAAK;MACzC;MACA;;MAEA,KAAK,MAAMzB,GAAG,IAAIpB,GAAG,EAAE;QACnB,IAAIoB,GAAG,KAAK,GAAGf,EAAE,IAAI8B,cAAc,EAAE,EAAE;UACnCU,6BAA6B,GAAG,IAAI;UACpC;QACJ;MACJ;MAEA,MAAMG,WAAW,GAAGA,CAACX,IAAS,EAAE/B,OAAO,GAAG,QAAQ,KAAK;QACnD,IAAIA,OAAO,KAAK,QAAQ,IAAI6B,cAAc,IAAIA,cAAc,KAAK7B,OAAO,EACpE;QACJiC,GAAG,EAAEC,WAAW,CAAC,CAAC;QAClBN,OAAO,CAACG,IAAI,CAAC;MACjB,CAAC;MAED,IAAIE,GAAG,GAAG1C,YAAY,CAAC4C,SAAS,CAAC,WAAWpC,EAAE,EAAE,EAAE2C,WAAW,CAAC;MAC9DnD,YAAY,CAAC8C,OAAO,CAChBE,6BAA6B,GAAG,aAAaxC,EAAE,EAAE,GAAG,QAAQA,EAAE,EAAE,EAChEI,OAAO,EAAEqC,OAAO,EAChB,CAACD,6BAA6B,GAAG,QAAQ,GAAGV,cAChD,CAAC;IACL,CAAC,CAAC;EACN;;EAEA;AACJ;AACA;AACA;AACA;EACIc,OAAOA,CAA+B5C,EAA4B,EAAE;IAChEE,cAAc,CAACqB,KAAK,CAAC,CAAC,CAACc,OAAO,CAAC,CAAC;MAAErC,EAAE,EAAEe,GAAG;MAAEd;IAAQ,CAAC,KAAK;MACrD,IAAID,EAAE,IAAI,CAACe,GAAG,CAACR,UAAU,CAACP,EAAE,CAAC,EAAE;MAC/BR,YAAY,CAAC8C,OAAO,CAAC,QAAQvB,GAAG,EAAE,EAAEwB,SAAS,EAAEtC,OAAO,CAAC;IAC3D,CAAC,CAAC;EACN;AACJ;;AAEA;AACA;AACA;AACA,OAAO,MAAM4C,YAAY,GAAG,IAAInB,aAAa,CAAC,CAAC","ignoreList":[]}
|