@pagopa/io-app-design-system 5.11.11 → 5.11.13-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/lib/commonjs/components/templates/ForceScrollDownView.js +43 -73
- package/lib/commonjs/components/templates/ForceScrollDownView.js.map +1 -1
- package/lib/commonjs/components/toast/ToastProvider.js +5 -1
- package/lib/commonjs/components/toast/ToastProvider.js.map +1 -1
- package/lib/module/components/templates/ForceScrollDownView.js +45 -75
- package/lib/module/components/templates/ForceScrollDownView.js.map +1 -1
- package/lib/module/components/toast/ToastProvider.js +6 -2
- package/lib/module/components/toast/ToastProvider.js.map +1 -1
- package/lib/typescript/components/templates/ForceScrollDownView.d.ts +7 -1
- package/lib/typescript/components/templates/ForceScrollDownView.d.ts.map +1 -1
- package/lib/typescript/components/toast/ToastProvider.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/templates/ForceScrollDownView.tsx +72 -104
- package/src/components/toast/ToastProvider.tsx +13 -1
- package/lib/commonjs/components/templates/__test__/ForceScrollDownView.test.js +0 -115
- package/lib/commonjs/components/templates/__test__/ForceScrollDownView.test.js.map +0 -1
- package/lib/commonjs/components/templates/__test__/__snapshots__/ForceScrollDownView.test.tsx.snap +0 -18
- package/lib/module/components/templates/__test__/ForceScrollDownView.test.js +0 -113
- package/lib/module/components/templates/__test__/ForceScrollDownView.test.js.map +0 -1
- package/lib/module/components/templates/__test__/__snapshots__/ForceScrollDownView.test.tsx.snap +0 -18
- package/lib/typescript/components/templates/__test__/ForceScrollDownView.test.d.ts +0 -2
- package/lib/typescript/components/templates/__test__/ForceScrollDownView.test.d.ts.map +0 -1
- package/src/components/templates/__test__/ForceScrollDownView.test.tsx +0 -106
- package/src/components/templates/__test__/__snapshots__/ForceScrollDownView.test.tsx.snap +0 -18
|
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.ForceScrollDownView = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
|
+
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
9
10
|
var _core = require("../../core");
|
|
10
11
|
var _buttons = require("../buttons");
|
|
11
|
-
var _ScaleInOutAnimation = require("../common/ScaleInOutAnimation");
|
|
12
12
|
var _layout = require("../layout");
|
|
13
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
14
|
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); }
|
|
@@ -25,109 +25,81 @@ const ForceScrollDownView = ({
|
|
|
25
25
|
style,
|
|
26
26
|
contentContainerStyle,
|
|
27
27
|
scrollEnabled = true,
|
|
28
|
-
onThresholdCrossed
|
|
28
|
+
onThresholdCrossed,
|
|
29
|
+
animatedRef
|
|
29
30
|
}) => {
|
|
30
|
-
const
|
|
31
|
+
const internalAnimatedRef = (0, _reactNativeReanimated.useAnimatedRef)();
|
|
32
|
+
const scrollViewRef = animatedRef ?? internalAnimatedRef;
|
|
31
33
|
const {
|
|
32
34
|
footerActionsInlineMeasurements,
|
|
33
35
|
handleFooterActionsInlineMeasurements
|
|
34
36
|
} = (0, _layout.useFooterActionsInlineMeasurements)();
|
|
35
37
|
const threshold = footerActions ? footerActionsInlineMeasurements.safeBottomAreaHeight : customThreshold;
|
|
36
38
|
|
|
37
|
-
/**
|
|
38
|
-
* The height of the scroll view, used to determine whether or not the scrollable content fits inside
|
|
39
|
-
* the scroll view and whether the "scroll to bottom" button should be displayed.
|
|
40
|
-
*/
|
|
41
|
-
const [scrollViewHeight, setScrollViewHeight] = (0, _react.useState)(0);
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* The height of the scrollable content, used to determine whether or not the "scroll to bottom" button
|
|
45
|
-
* should be displayed.
|
|
46
|
-
*/
|
|
47
|
-
const [contentHeight, setContentHeight] = (0, _react.useState)(0);
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Whether or not the scroll view has crossed the threshold from the bottom.
|
|
51
|
-
*/
|
|
52
|
-
const [isThresholdCrossed, setThresholdCrossed] = (0, _react.useState)(false);
|
|
53
|
-
|
|
54
39
|
/**
|
|
55
40
|
* Whether or not the "scroll to bottom" button should be visible. This is controlled by the threshold
|
|
56
41
|
* and the current scroll position.
|
|
57
42
|
*/
|
|
58
|
-
const [isButtonVisible, setButtonVisible] =
|
|
43
|
+
// const [isButtonVisible, setButtonVisible] = useState(true);
|
|
59
44
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
const thresholdCrossed = layoutMeasurement.height + contentOffset.y >= contentSize.height - (threshold ?? 0);
|
|
72
|
-
if (isThresholdCrossed !== thresholdCrossed) {
|
|
73
|
-
setThresholdCrossed(thresholdCrossed);
|
|
74
|
-
setButtonVisible(!thresholdCrossed);
|
|
45
|
+
const isButtonVisible = (0, _reactNativeReanimated.useSharedValue)(1);
|
|
46
|
+
const scrollViewHeight = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
47
|
+
const contentHeight = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
48
|
+
const offsetY = (0, _reactNativeReanimated.useScrollViewOffset)(scrollViewRef);
|
|
49
|
+
(0, _reactNativeReanimated.useAnimatedReaction)(() => scrollViewHeight.value + Math.max(offsetY.value, 0) >= contentHeight.value - (threshold ?? 0), (crossed, previous) => {
|
|
50
|
+
if (crossed !== previous) {
|
|
51
|
+
// eslint-disable-next-line functional/immutable-data
|
|
52
|
+
isButtonVisible.value = (0, _reactNativeReanimated.withSpring)(crossed && scrollEnabled ? 0 : 1, _core.IOSpringValues.button);
|
|
53
|
+
if (onThresholdCrossed) {
|
|
54
|
+
(0, _reactNativeReanimated.runOnJS)(onThresholdCrossed)(crossed);
|
|
55
|
+
}
|
|
75
56
|
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* A side effect that calls the `onThresholdCrossed` callback whenever the value of `isThresholdCrossed` changes.
|
|
80
|
-
*/
|
|
81
|
-
(0, _react.useEffect)(() => {
|
|
82
|
-
onThresholdCrossed?.(isThresholdCrossed);
|
|
83
|
-
}, [onThresholdCrossed, isThresholdCrossed]);
|
|
57
|
+
});
|
|
84
58
|
|
|
85
59
|
/**
|
|
86
60
|
* A callback that is called whenever the size of the scrollable content changes. It updates the
|
|
87
61
|
* state with the new content height.
|
|
88
62
|
*/
|
|
89
|
-
const handleContentSizeChange = (0, _react.useCallback)(
|
|
90
|
-
|
|
91
|
-
|
|
63
|
+
const handleContentSizeChange = (0, _react.useCallback)(
|
|
64
|
+
// eslint-disable-next-line functional/immutable-data
|
|
65
|
+
(_w, h) => contentHeight.value = h, [contentHeight]);
|
|
92
66
|
|
|
93
67
|
/**
|
|
94
68
|
* A callback that is called whenever the size of the scroll view changes. It updates the state
|
|
95
69
|
* with the new scroll view height.
|
|
96
70
|
*/
|
|
97
|
-
const handleLayout = (0, _react.useCallback)(event =>
|
|
98
|
-
|
|
99
|
-
|
|
71
|
+
const handleLayout = (0, _react.useCallback)(event =>
|
|
72
|
+
// eslint-disable-next-line functional/immutable-data
|
|
73
|
+
scrollViewHeight.value = event.nativeEvent.layout.height, [scrollViewHeight]);
|
|
100
74
|
|
|
101
75
|
/**
|
|
102
76
|
* A callback that is called when the "scroll to bottom" button is pressed. It scrolls the
|
|
103
77
|
* scroll view to the bottom and hides the button.
|
|
104
78
|
*/
|
|
105
79
|
const handleScrollDownPress = (0, _react.useCallback)(() => {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}, [scrollViewRef]);
|
|
80
|
+
(0, _reactNativeReanimated.runOnUI)(() => {
|
|
81
|
+
"worklet";
|
|
109
82
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
83
|
+
// eslint-disable-next-line functional/immutable-data
|
|
84
|
+
isButtonVisible.value = (0, _reactNativeReanimated.withSpring)(0, _core.IOSpringValues.button);
|
|
85
|
+
const targetY = Math.max(0, contentHeight.value - scrollViewHeight.value);
|
|
86
|
+
(0, _reactNativeReanimated.scrollTo)(scrollViewRef, 0, targetY, true);
|
|
87
|
+
})();
|
|
88
|
+
}, [scrollViewRef, contentHeight, scrollViewHeight, isButtonVisible]);
|
|
116
89
|
|
|
117
90
|
/**
|
|
118
|
-
*
|
|
119
|
-
*
|
|
91
|
+
* The "scroll to bottom" button component. It is wrapped in a reanimated View
|
|
92
|
+
* and has animated style applied to it.
|
|
120
93
|
*/
|
|
121
|
-
const shouldRenderScrollButton = scrollEnabled && needsScroll && isButtonVisible;
|
|
122
94
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
95
|
+
const buttonTransitionStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
|
|
96
|
+
opacity: isButtonVisible.value,
|
|
97
|
+
transform: [{
|
|
98
|
+
scale: (0, _reactNativeReanimated.interpolate)(isButtonVisible.value, [0, 1], [0.5, 1])
|
|
99
|
+
}]
|
|
100
|
+
}));
|
|
101
|
+
const scrollDownButton = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
102
|
+
style: [styles.scrollDownButton, buttonTransitionStyle],
|
|
131
103
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_buttons.IconButtonSolid, {
|
|
132
104
|
testID: "ScrollDownButton",
|
|
133
105
|
accessibilityLabel: "Scroll to bottom",
|
|
@@ -136,13 +108,11 @@ const ForceScrollDownView = ({
|
|
|
136
108
|
})
|
|
137
109
|
});
|
|
138
110
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
139
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(
|
|
111
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeReanimated.default.ScrollView, {
|
|
140
112
|
testID: "ScrollView",
|
|
141
113
|
ref: scrollViewRef,
|
|
142
114
|
scrollEnabled: scrollEnabled,
|
|
143
115
|
style: style,
|
|
144
|
-
onScroll: handleScroll,
|
|
145
|
-
scrollEventThrottle: 8,
|
|
146
116
|
onLayout: handleLayout,
|
|
147
117
|
onContentSizeChange: handleContentSizeChange,
|
|
148
118
|
contentContainerStyle: contentContainerStyle,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_core","_buttons","_layout","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ForceScrollDownView","footerActions","children","threshold","customThreshold","style","contentContainerStyle","scrollEnabled","onThresholdCrossed","animatedRef","internalAnimatedRef","useAnimatedRef","scrollViewRef","footerActionsInlineMeasurements","handleFooterActionsInlineMeasurements","useFooterActionsInlineMeasurements","safeBottomAreaHeight","isButtonVisible","useSharedValue","scrollViewHeight","contentHeight","offsetY","useScrollViewOffset","useAnimatedReaction","value","Math","max","crossed","previous","withSpring","IOSpringValues","button","runOnJS","handleContentSizeChange","useCallback","_w","h","handleLayout","event","nativeEvent","layout","height","handleScrollDownPress","runOnUI","targetY","scrollTo","buttonTransitionStyle","useAnimatedStyle","opacity","transform","scale","interpolate","scrollDownButton","jsx","View","styles","IconButtonSolid","testID","accessibilityLabel","icon","onPress","jsxs","Fragment","ScrollView","ref","onLayout","onContentSizeChange","FooterActions","onMeasure","fixed","exports","StyleSheet","create","position","zIndex","right","IOVisualCostants","scrollDownButtonRight","bottom","scrollDownButtonBottom"],"sourceRoot":"../../../../src","sources":["components/templates/ForceScrollDownView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,6 +8,7 @@ var _lodash = require("lodash");
|
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _reactNative = require("react-native");
|
|
10
10
|
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
11
|
+
var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
|
|
11
12
|
var _core = require("../../core");
|
|
12
13
|
var _functions = require("../../functions");
|
|
13
14
|
var _templates = require("../templates");
|
|
@@ -98,10 +99,13 @@ const ToastProvider = ({
|
|
|
98
99
|
removeToast: (0, _lodash.throttle)(removeToast, TOAST_THROTTLE_TIME),
|
|
99
100
|
removeAllToasts
|
|
100
101
|
}), [addToast, removeToast, removeAllToasts]);
|
|
102
|
+
const insets = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)();
|
|
101
103
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_context.ToastContext.Provider, {
|
|
102
104
|
value: contextValue,
|
|
103
105
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(InitializeToastRef, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.SafeAreaView, {
|
|
104
|
-
style: styles.container,
|
|
106
|
+
style: [styles.container, {
|
|
107
|
+
paddingTop: _reactNative.Platform.OS === "android" ? insets.top : 0
|
|
108
|
+
}],
|
|
105
109
|
pointerEvents: "box-none",
|
|
106
110
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
107
111
|
style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lodash","require","_react","_interopRequireDefault","_reactNative","_reactNativeReanimated","_interopRequireWildcard","_core","_functions","_templates","_ToastNotification","_context","_useIOToast","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MAX_TOAST_STACK_SIZE","exports","TOAST_DURATION_TIME","TOAST_THROTTLE_TIME","ToastNotificationStackItem","onDismiss","toast","jsx","View","entering","SlideInUp","springify","damping","mass","stiffness","exiting","SlideOutUp","duration","easing","Easing","inOut","exp","layout","SequencedTransition","delay","style","paddingBottom","children","Dismissable","ToastNotification","ToastProvider","toastId","React","useRef","toasts","setToasts","useState","addToast","useCallback","id","current","prevToasts","length","mostRecentToasts","slice","setTimeout","filter","hapticFeedback","triggerHaptic","AccessibilityInfo","announceForAccessibilityWithOptions","message","queue","removeToast","removeAllToasts","contextValue","useMemo","throttle","jsxs","ToastContext","Provider","value","InitializeToastRef","SafeAreaView","styles","container","pointerEvents","padding","IOVisualCostants","appMarginDefault","map","useIOToast","IOToastRef","StyleSheet","create","zIndex","position","bottom","left","right","
|
|
1
|
+
{"version":3,"names":["_lodash","require","_react","_interopRequireDefault","_reactNative","_reactNativeReanimated","_interopRequireWildcard","_reactNativeSafeAreaContext","_core","_functions","_templates","_ToastNotification","_context","_useIOToast","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MAX_TOAST_STACK_SIZE","exports","TOAST_DURATION_TIME","TOAST_THROTTLE_TIME","ToastNotificationStackItem","onDismiss","toast","jsx","View","entering","SlideInUp","springify","damping","mass","stiffness","exiting","SlideOutUp","duration","easing","Easing","inOut","exp","layout","SequencedTransition","delay","style","paddingBottom","children","Dismissable","ToastNotification","ToastProvider","toastId","React","useRef","toasts","setToasts","useState","addToast","useCallback","id","current","prevToasts","length","mostRecentToasts","slice","setTimeout","filter","hapticFeedback","triggerHaptic","AccessibilityInfo","announceForAccessibilityWithOptions","message","queue","removeToast","removeAllToasts","contextValue","useMemo","throttle","insets","useSafeAreaInsets","jsxs","ToastContext","Provider","value","InitializeToastRef","SafeAreaView","styles","container","paddingTop","Platform","OS","top","pointerEvents","padding","IOVisualCostants","appMarginDefault","map","useIOToast","IOToastRef","StyleSheet","create","zIndex","position","bottom","left","right","overflow"],"sourceRoot":"../../../../src","sources":["components/toast/ToastProvider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React, { useCallback
|
|
4
|
-
import {
|
|
3
|
+
import React, { useCallback } from "react";
|
|
4
|
+
import { StyleSheet } from "react-native";
|
|
5
|
+
import Animated, { interpolate, runOnJS, runOnUI, scrollTo, useAnimatedReaction, useAnimatedRef, useAnimatedStyle, useScrollViewOffset, useSharedValue, withSpring } from "react-native-reanimated";
|
|
5
6
|
import { IOSpringValues, IOVisualCostants } from "../../core";
|
|
6
7
|
import { IconButtonSolid } from "../buttons";
|
|
7
|
-
import { ScaleInOutAnimation } from "../common/ScaleInOutAnimation";
|
|
8
8
|
import { FooterActions, useFooterActionsInlineMeasurements } from "../layout";
|
|
9
9
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
10
10
|
/**
|
|
@@ -20,109 +20,81 @@ const ForceScrollDownView = ({
|
|
|
20
20
|
style,
|
|
21
21
|
contentContainerStyle,
|
|
22
22
|
scrollEnabled = true,
|
|
23
|
-
onThresholdCrossed
|
|
23
|
+
onThresholdCrossed,
|
|
24
|
+
animatedRef
|
|
24
25
|
}) => {
|
|
25
|
-
const
|
|
26
|
+
const internalAnimatedRef = useAnimatedRef();
|
|
27
|
+
const scrollViewRef = animatedRef ?? internalAnimatedRef;
|
|
26
28
|
const {
|
|
27
29
|
footerActionsInlineMeasurements,
|
|
28
30
|
handleFooterActionsInlineMeasurements
|
|
29
31
|
} = useFooterActionsInlineMeasurements();
|
|
30
32
|
const threshold = footerActions ? footerActionsInlineMeasurements.safeBottomAreaHeight : customThreshold;
|
|
31
33
|
|
|
32
|
-
/**
|
|
33
|
-
* The height of the scroll view, used to determine whether or not the scrollable content fits inside
|
|
34
|
-
* the scroll view and whether the "scroll to bottom" button should be displayed.
|
|
35
|
-
*/
|
|
36
|
-
const [scrollViewHeight, setScrollViewHeight] = useState(0);
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* The height of the scrollable content, used to determine whether or not the "scroll to bottom" button
|
|
40
|
-
* should be displayed.
|
|
41
|
-
*/
|
|
42
|
-
const [contentHeight, setContentHeight] = useState(0);
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Whether or not the scroll view has crossed the threshold from the bottom.
|
|
46
|
-
*/
|
|
47
|
-
const [isThresholdCrossed, setThresholdCrossed] = useState(false);
|
|
48
|
-
|
|
49
34
|
/**
|
|
50
35
|
* Whether or not the "scroll to bottom" button should be visible. This is controlled by the threshold
|
|
51
36
|
* and the current scroll position.
|
|
52
37
|
*/
|
|
53
|
-
const [isButtonVisible, setButtonVisible] = useState(true);
|
|
38
|
+
// const [isButtonVisible, setButtonVisible] = useState(true);
|
|
54
39
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
const thresholdCrossed = layoutMeasurement.height + contentOffset.y >= contentSize.height - (threshold ?? 0);
|
|
67
|
-
if (isThresholdCrossed !== thresholdCrossed) {
|
|
68
|
-
setThresholdCrossed(thresholdCrossed);
|
|
69
|
-
setButtonVisible(!thresholdCrossed);
|
|
40
|
+
const isButtonVisible = useSharedValue(1);
|
|
41
|
+
const scrollViewHeight = useSharedValue(0);
|
|
42
|
+
const contentHeight = useSharedValue(0);
|
|
43
|
+
const offsetY = useScrollViewOffset(scrollViewRef);
|
|
44
|
+
useAnimatedReaction(() => scrollViewHeight.value + Math.max(offsetY.value, 0) >= contentHeight.value - (threshold ?? 0), (crossed, previous) => {
|
|
45
|
+
if (crossed !== previous) {
|
|
46
|
+
// eslint-disable-next-line functional/immutable-data
|
|
47
|
+
isButtonVisible.value = withSpring(crossed && scrollEnabled ? 0 : 1, IOSpringValues.button);
|
|
48
|
+
if (onThresholdCrossed) {
|
|
49
|
+
runOnJS(onThresholdCrossed)(crossed);
|
|
50
|
+
}
|
|
70
51
|
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* A side effect that calls the `onThresholdCrossed` callback whenever the value of `isThresholdCrossed` changes.
|
|
75
|
-
*/
|
|
76
|
-
useEffect(() => {
|
|
77
|
-
onThresholdCrossed?.(isThresholdCrossed);
|
|
78
|
-
}, [onThresholdCrossed, isThresholdCrossed]);
|
|
52
|
+
});
|
|
79
53
|
|
|
80
54
|
/**
|
|
81
55
|
* A callback that is called whenever the size of the scrollable content changes. It updates the
|
|
82
56
|
* state with the new content height.
|
|
83
57
|
*/
|
|
84
|
-
const handleContentSizeChange = useCallback(
|
|
85
|
-
|
|
86
|
-
|
|
58
|
+
const handleContentSizeChange = useCallback(
|
|
59
|
+
// eslint-disable-next-line functional/immutable-data
|
|
60
|
+
(_w, h) => contentHeight.value = h, [contentHeight]);
|
|
87
61
|
|
|
88
62
|
/**
|
|
89
63
|
* A callback that is called whenever the size of the scroll view changes. It updates the state
|
|
90
64
|
* with the new scroll view height.
|
|
91
65
|
*/
|
|
92
|
-
const handleLayout = useCallback(event =>
|
|
93
|
-
|
|
94
|
-
|
|
66
|
+
const handleLayout = useCallback(event =>
|
|
67
|
+
// eslint-disable-next-line functional/immutable-data
|
|
68
|
+
scrollViewHeight.value = event.nativeEvent.layout.height, [scrollViewHeight]);
|
|
95
69
|
|
|
96
70
|
/**
|
|
97
71
|
* A callback that is called when the "scroll to bottom" button is pressed. It scrolls the
|
|
98
72
|
* scroll view to the bottom and hides the button.
|
|
99
73
|
*/
|
|
100
74
|
const handleScrollDownPress = useCallback(() => {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}, [scrollViewRef]);
|
|
75
|
+
runOnUI(() => {
|
|
76
|
+
"worklet";
|
|
104
77
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
78
|
+
// eslint-disable-next-line functional/immutable-data
|
|
79
|
+
isButtonVisible.value = withSpring(0, IOSpringValues.button);
|
|
80
|
+
const targetY = Math.max(0, contentHeight.value - scrollViewHeight.value);
|
|
81
|
+
scrollTo(scrollViewRef, 0, targetY, true);
|
|
82
|
+
})();
|
|
83
|
+
}, [scrollViewRef, contentHeight, scrollViewHeight, isButtonVisible]);
|
|
111
84
|
|
|
112
85
|
/**
|
|
113
|
-
*
|
|
114
|
-
*
|
|
86
|
+
* The "scroll to bottom" button component. It is wrapped in a reanimated View
|
|
87
|
+
* and has animated style applied to it.
|
|
115
88
|
*/
|
|
116
|
-
const shouldRenderScrollButton = scrollEnabled && needsScroll && isButtonVisible;
|
|
117
89
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
90
|
+
const buttonTransitionStyle = useAnimatedStyle(() => ({
|
|
91
|
+
opacity: isButtonVisible.value,
|
|
92
|
+
transform: [{
|
|
93
|
+
scale: interpolate(isButtonVisible.value, [0, 1], [0.5, 1])
|
|
94
|
+
}]
|
|
95
|
+
}));
|
|
96
|
+
const scrollDownButton = /*#__PURE__*/_jsx(Animated.View, {
|
|
97
|
+
style: [styles.scrollDownButton, buttonTransitionStyle],
|
|
126
98
|
children: /*#__PURE__*/_jsx(IconButtonSolid, {
|
|
127
99
|
testID: "ScrollDownButton",
|
|
128
100
|
accessibilityLabel: "Scroll to bottom",
|
|
@@ -131,13 +103,11 @@ const ForceScrollDownView = ({
|
|
|
131
103
|
})
|
|
132
104
|
});
|
|
133
105
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
134
|
-
children: [/*#__PURE__*/_jsxs(ScrollView, {
|
|
106
|
+
children: [/*#__PURE__*/_jsxs(Animated.ScrollView, {
|
|
135
107
|
testID: "ScrollView",
|
|
136
108
|
ref: scrollViewRef,
|
|
137
109
|
scrollEnabled: scrollEnabled,
|
|
138
110
|
style: style,
|
|
139
|
-
onScroll: handleScroll,
|
|
140
|
-
scrollEventThrottle: 8,
|
|
141
111
|
onLayout: handleLayout,
|
|
142
112
|
onContentSizeChange: handleContentSizeChange,
|
|
143
113
|
contentContainerStyle: contentContainerStyle,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","
|
|
1
|
+
{"version":3,"names":["React","useCallback","StyleSheet","Animated","interpolate","runOnJS","runOnUI","scrollTo","useAnimatedReaction","useAnimatedRef","useAnimatedStyle","useScrollViewOffset","useSharedValue","withSpring","IOSpringValues","IOVisualCostants","IconButtonSolid","FooterActions","useFooterActionsInlineMeasurements","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ForceScrollDownView","footerActions","children","threshold","customThreshold","style","contentContainerStyle","scrollEnabled","onThresholdCrossed","animatedRef","internalAnimatedRef","scrollViewRef","footerActionsInlineMeasurements","handleFooterActionsInlineMeasurements","safeBottomAreaHeight","isButtonVisible","scrollViewHeight","contentHeight","offsetY","value","Math","max","crossed","previous","button","handleContentSizeChange","_w","h","handleLayout","event","nativeEvent","layout","height","handleScrollDownPress","targetY","buttonTransitionStyle","opacity","transform","scale","scrollDownButton","View","styles","testID","accessibilityLabel","icon","onPress","ScrollView","ref","onLayout","onContentSizeChange","onMeasure","fixed","create","position","zIndex","right","scrollDownButtonRight","bottom","scrollDownButtonBottom"],"sourceRoot":"../../../../src","sources":["components/templates/ForceScrollDownView.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAA+BC,WAAW,QAAQ,OAAO;AACrE,SAA6CC,UAAU,QAAQ,cAAc;AAC7E,OAAOC,QAAQ,IAEbC,WAAW,EACXC,OAAO,EACPC,OAAO,EACPC,QAAQ,EACRC,mBAAmB,EACnBC,cAAc,EACdC,gBAAgB,EAChBC,mBAAmB,EACnBC,cAAc,EACdC,UAAU,QACL,yBAAyB;AAChC,SAASC,cAAc,EAAEC,gBAAgB,QAAQ,YAAY;AAC7D,SAASC,eAAe,QAAQ,YAAY;AAC5C,SAASC,aAAa,EAAEC,kCAAkC,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AA+C9E;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,mBAAmB,GAAGA,CAAC;EAC3BC,aAAa;EACbC,QAAQ;EACRC,SAAS,EAAEC,eAAe;EAC1BC,KAAK;EACLC,qBAAqB;EACrBC,aAAa,GAAG,IAAI;EACpBC,kBAAkB;EAClBC;AACmB,CAAC,KAAK;EACzB,MAAMC,mBAAmB,GAAG1B,cAAc,CAAsB,CAAC;EACjE,MAAM2B,aAAa,GAAGF,WAAW,IAAIC,mBAAmB;EAExD,MAAM;IACJE,+BAA+B;IAC/BC;EACF,CAAC,GAAGpB,kCAAkC,CAAC,CAAC;EAExC,MAAMU,SAAS,GAAGF,aAAa,GAC3BW,+BAA+B,CAACE,oBAAoB,GACpDV,eAAe;;EAEnB;AACF;AACA;AACA;EACE;;EAEA,MAAMW,eAAe,GAAG5B,cAAc,CAAC,CAAC,CAAC;EACzC,MAAM6B,gBAAgB,GAAG7B,cAAc,CAAC,CAAC,CAAC;EAC1C,MAAM8B,aAAa,GAAG9B,cAAc,CAAC,CAAC,CAAC;EACvC,MAAM+B,OAAO,GAAGhC,mBAAmB,CAACyB,aAAa,CAAC;EAElD5B,mBAAmB,CACjB,MACEiC,gBAAgB,CAACG,KAAK,GAAGC,IAAI,CAACC,GAAG,CAACH,OAAO,CAACC,KAAK,EAAE,CAAC,CAAC,IACnDF,aAAa,CAACE,KAAK,IAAIhB,SAAS,IAAI,CAAC,CAAC,EACxC,CAACmB,OAAO,EAAEC,QAAQ,KAAK;IACrB,IAAID,OAAO,KAAKC,QAAQ,EAAE;MACxB;MACAR,eAAe,CAACI,KAAK,GAAG/B,UAAU,CAChCkC,OAAO,IAAIf,aAAa,GAAG,CAAC,GAAG,CAAC,EAChClB,cAAc,CAACmC,MACjB,CAAC;MACD,IAAIhB,kBAAkB,EAAE;QACtB5B,OAAO,CAAC4B,kBAAkB,CAAC,CAACc,OAAO,CAAC;MACtC;IACF;EACF,CACF,CAAC;;EAED;AACF;AACA;AACA;EACE,MAAMG,uBAAuB,GAAGjD,WAAW;EACzC;EACA,CAACkD,EAAU,EAAEC,CAAS,KAAMV,aAAa,CAACE,KAAK,GAAGQ,CAAE,EACpD,CAACV,aAAa,CAChB,CAAC;;EAED;AACF;AACA;AACA;EACE,MAAMW,YAAY,GAAGpD,WAAW,CAC7BqD,KAAwB;EACvB;EACCb,gBAAgB,CAACG,KAAK,GAAGU,KAAK,CAACC,WAAW,CAACC,MAAM,CAACC,MAAO,EAC5D,CAAChB,gBAAgB,CACnB,CAAC;;EAED;AACF;AACA;AACA;EACE,MAAMiB,qBAAqB,GAAGzD,WAAW,CAAC,MAAM;IAC9CK,OAAO,CAAC,MAAM;MACZ,SAAS;;MACT;MACAkC,eAAe,CAACI,KAAK,GAAG/B,UAAU,CAAC,CAAC,EAAEC,cAAc,CAACmC,MAAM,CAAC;MAC5D,MAAMU,OAAO,GAAGd,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEJ,aAAa,CAACE,KAAK,GAAGH,gBAAgB,CAACG,KAAK,CAAC;MACzErC,QAAQ,CAAC6B,aAAa,EAAE,CAAC,EAAEuB,OAAO,EAAE,IAAI,CAAC;IAC3C,CAAC,CAAC,CAAC,CAAC;EACN,CAAC,EAAE,CAACvB,aAAa,EAAEM,aAAa,EAAED,gBAAgB,EAAED,eAAe,CAAC,CAAC;;EAErE;AACF;AACA;AACA;;EAEE,MAAMoB,qBAAqB,GAAGlD,gBAAgB,CAAC,OAAO;IACpDmD,OAAO,EAAErB,eAAe,CAACI,KAAK;IAC9BkB,SAAS,EAAE,CAAC;MAAEC,KAAK,EAAE3D,WAAW,CAACoC,eAAe,CAACI,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAAE,CAAC;EAC7E,CAAC,CAAC,CAAC;EAEH,MAAMoB,gBAAgB,gBACpB5C,IAAA,CAACjB,QAAQ,CAAC8D,IAAI;IAACnC,KAAK,EAAE,CAACoC,MAAM,CAACF,gBAAgB,EAAEJ,qBAAqB,CAAE;IAAAjC,QAAA,eACrEP,IAAA,CAACJ,eAAe;MACdmD,MAAM,EAAE,kBAAmB;MAC3BC,kBAAkB,EAAC,kBAAkB;MACrCC,IAAI,EAAC,aAAa;MAClBC,OAAO,EAAEZ;IAAsB,CAChC;EAAC,CACW,CAChB;EAED,oBACEpC,KAAA,CAAAE,SAAA;IAAAG,QAAA,gBACEL,KAAA,CAACnB,QAAQ,CAACoE,UAAU;MAClBJ,MAAM,EAAE,YAAa;MACrBK,GAAG,EAAEpC,aAAc;MACnBJ,aAAa,EAAEA,aAAc;MAC7BF,KAAK,EAAEA,KAAM;MACb2C,QAAQ,EAAEpB,YAAa;MACvBqB,mBAAmB,EAAExB,uBAAwB;MAC7CnB,qBAAqB,EAAEA,qBAAsB;MAAAJ,QAAA,GAE5CA,QAAQ,EACRD,aAAa,iBACZN,IAAA,CAACH,aAAa;QAAA,GACRS,aAAa;QACjBiD,SAAS,EAAErC,qCAAsC;QACjDsC,KAAK,EAAE;MAAM,CACd,CACF;IAAA,CACkB,CAAC,EACrBZ,gBAAgB;EAAA,CACjB,CAAC;AAEP,CAAC;AAED,MAAME,MAAM,GAAGhE,UAAU,CAAC2E,MAAM,CAAC;EAC/Bb,gBAAgB,EAAE;IAChBc,QAAQ,EAAE,UAAU;IACpBC,MAAM,EAAE,EAAE;IACVC,KAAK,EAAEjE,gBAAgB,CAACkE,qBAAqB;IAC7CC,MAAM,EAAEnE,gBAAgB,CAACoE;EAC3B;AACF,CAAC,CAAC;AAEF,SAAS1D,mBAAmB","ignoreList":[]}
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
import { throttle } from "lodash";
|
|
4
4
|
import React from "react";
|
|
5
|
-
import { AccessibilityInfo, SafeAreaView, StyleSheet, View } from "react-native";
|
|
5
|
+
import { AccessibilityInfo, Platform, SafeAreaView, StyleSheet, View } from "react-native";
|
|
6
6
|
import Animated, { Easing, SequencedTransition, SlideInUp, SlideOutUp } from "react-native-reanimated";
|
|
7
|
+
import { useSafeAreaInsets } from "react-native-safe-area-context";
|
|
7
8
|
import { IOVisualCostants } from "../../core";
|
|
8
9
|
import { triggerHaptic } from "../../functions";
|
|
9
10
|
import { Dismissable } from "../templates";
|
|
@@ -93,10 +94,13 @@ export const ToastProvider = ({
|
|
|
93
94
|
removeToast: throttle(removeToast, TOAST_THROTTLE_TIME),
|
|
94
95
|
removeAllToasts
|
|
95
96
|
}), [addToast, removeToast, removeAllToasts]);
|
|
97
|
+
const insets = useSafeAreaInsets();
|
|
96
98
|
return /*#__PURE__*/_jsxs(ToastContext.Provider, {
|
|
97
99
|
value: contextValue,
|
|
98
100
|
children: [/*#__PURE__*/_jsx(InitializeToastRef, {}), /*#__PURE__*/_jsx(SafeAreaView, {
|
|
99
|
-
style: styles.container,
|
|
101
|
+
style: [styles.container, {
|
|
102
|
+
paddingTop: Platform.OS === "android" ? insets.top : 0
|
|
103
|
+
}],
|
|
100
104
|
pointerEvents: "box-none",
|
|
101
105
|
children: /*#__PURE__*/_jsx(View, {
|
|
102
106
|
style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["throttle","React","AccessibilityInfo","SafeAreaView","StyleSheet","View","Animated","Easing","SequencedTransition","SlideInUp","SlideOutUp","IOVisualCostants","triggerHaptic","Dismissable","ToastNotification","ToastContext","IOToastRef","useIOToast","jsx","_jsx","jsxs","_jsxs","MAX_TOAST_STACK_SIZE","TOAST_DURATION_TIME","TOAST_THROTTLE_TIME","ToastNotificationStackItem","onDismiss","toast","entering","springify","damping","mass","stiffness","exiting","duration","easing","inOut","exp","layout","delay","style","paddingBottom","children","ToastProvider","toastId","useRef","toasts","setToasts","useState","addToast","useCallback","id","current","prevToasts","length","mostRecentToasts","slice","setTimeout","filter","t","hapticFeedback","announceForAccessibilityWithOptions","message","queue","removeToast","removeAllToasts","contextValue","useMemo","Provider","value","InitializeToastRef","styles","container","pointerEvents","padding","appMarginDefault","map","create","zIndex","position","bottom","left","right","
|
|
1
|
+
{"version":3,"names":["throttle","React","AccessibilityInfo","Platform","SafeAreaView","StyleSheet","View","Animated","Easing","SequencedTransition","SlideInUp","SlideOutUp","useSafeAreaInsets","IOVisualCostants","triggerHaptic","Dismissable","ToastNotification","ToastContext","IOToastRef","useIOToast","jsx","_jsx","jsxs","_jsxs","MAX_TOAST_STACK_SIZE","TOAST_DURATION_TIME","TOAST_THROTTLE_TIME","ToastNotificationStackItem","onDismiss","toast","entering","springify","damping","mass","stiffness","exiting","duration","easing","inOut","exp","layout","delay","style","paddingBottom","children","ToastProvider","toastId","useRef","toasts","setToasts","useState","addToast","useCallback","id","current","prevToasts","length","mostRecentToasts","slice","setTimeout","filter","t","hapticFeedback","announceForAccessibilityWithOptions","message","queue","removeToast","removeAllToasts","contextValue","useMemo","insets","Provider","value","InitializeToastRef","styles","container","paddingTop","OS","top","pointerEvents","padding","appMarginDefault","map","create","zIndex","position","bottom","left","right","overflow"],"sourceRoot":"../../../../src","sources":["components/toast/ToastProvider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React, { ComponentProps, ReactNode } from "react";
|
|
2
2
|
import { ScrollViewProps } from "react-native";
|
|
3
|
+
import Animated, { AnimatedRef } from "react-native-reanimated";
|
|
3
4
|
import { FooterActions } from "../layout";
|
|
4
5
|
type ForceScrollDownViewActions = {
|
|
5
6
|
/**
|
|
@@ -27,6 +28,11 @@ export type ForceScrollDownView = {
|
|
|
27
28
|
* is passed a boolean indicating whether the threshold has been crossed (`true`) or not (`false`).
|
|
28
29
|
*/
|
|
29
30
|
onThresholdCrossed?: (crossed: boolean) => void;
|
|
31
|
+
/**
|
|
32
|
+
* Optional Animated ref to be used with `useScrollViewOffset`
|
|
33
|
+
* (outside this component)
|
|
34
|
+
*/
|
|
35
|
+
animatedRef?: AnimatedRef<Animated.ScrollView>;
|
|
30
36
|
} & ForceScrollDownViewSlot & Pick<ScrollViewProps, "style" | "contentContainerStyle" | "scrollEnabled" | "testID">;
|
|
31
37
|
/**
|
|
32
38
|
* A React Native component that displays a scroll view with a button that scrolls to the bottom of the content
|
|
@@ -34,6 +40,6 @@ export type ForceScrollDownView = {
|
|
|
34
40
|
* configurable by the `threshold` prop. The button, and the scrolling, can also be disabled by setting the
|
|
35
41
|
* `scrollEnabled` prop to `false`.
|
|
36
42
|
*/
|
|
37
|
-
declare const ForceScrollDownView: ({ footerActions, children, threshold: customThreshold, style, contentContainerStyle, scrollEnabled, onThresholdCrossed }: ForceScrollDownView) => React.JSX.Element;
|
|
43
|
+
declare const ForceScrollDownView: ({ footerActions, children, threshold: customThreshold, style, contentContainerStyle, scrollEnabled, onThresholdCrossed, animatedRef }: ForceScrollDownView) => React.JSX.Element;
|
|
38
44
|
export { ForceScrollDownView };
|
|
39
45
|
//# sourceMappingURL=ForceScrollDownView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ForceScrollDownView.d.ts","sourceRoot":"","sources":["../../../../src/components/templates/ForceScrollDownView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"ForceScrollDownView.d.ts","sourceRoot":"","sources":["../../../../src/components/templates/ForceScrollDownView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,cAAc,EAAE,SAAS,EAAe,MAAM,OAAO,CAAC;AACtE,OAAO,EAAqB,eAAe,EAAc,MAAM,cAAc,CAAC;AAC9E,OAAO,QAAQ,EAAE,EACf,WAAW,EAWZ,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,aAAa,EAAsC,MAAM,WAAW,CAAC;AAE9E,KAAK,0BAA0B,GAAG;IAChC;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,aAAa,EAAE,IAAI,CACjB,cAAc,CAAC,OAAO,aAAa,CAAC,EACpC,OAAO,GAAG,WAAW,CACtB,CAAC;CACH,CAAC;AAEF,KAAK,6BAA6B,GAAG;IACnC;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,KAAK,CAAC;CACvB,CAAC;AAEF,KAAK,uBAAuB,GACxB,0BAA0B,GAC1B,6BAA6B,CAAC;AAElC,MAAM,MAAM,mBAAmB,GAAG;IAChC;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;CAChD,GAAG,uBAAuB,GACzB,IAAI,CACF,eAAe,EACf,OAAO,GAAG,uBAAuB,GAAG,eAAe,GAAG,QAAQ,CAC/D,CAAC;AAEJ;;;;;GAKG;AACH,QAAA,MAAM,mBAAmB,GAAI,uIAS1B,mBAAmB,sBAyHrB,CAAC;AAWF,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/toast/ToastProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ToastProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/toast/ToastProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAuB1B;;;GAGG;AACH,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC;;GAEG;AACH,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAyBvC,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,cAAc,kBAAkB,sBAiF7D,CAAC"}
|