@pagopa/io-app-design-system 5.11.17 → 5.11.18

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.
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useBottomMargins = void 0;
7
+ var _reactNative = require("react-native");
7
8
  var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
8
9
  var _core = require("../../../core");
9
10
  /* Extra bottom margin for iPhone bottom handle because
@@ -12,12 +13,13 @@ const extraSafeAreaMargin = 8;
12
13
  const useBottomMargins = (withSecondaryAction = false, excludeSafeAreaMargins = false) => {
13
14
  const insets = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)();
14
15
  const needSafeAreaMargin = insets.bottom !== 0;
16
+ const edgeToEdgeMargin = _reactNative.Platform.OS === "ios" ? 0 : 8;
15
17
 
16
18
  /* Check if the iPhone bottom handle is present.
17
19
  If not, or if you don't need safe area insets,
18
20
  add a default margin to prevent the button
19
21
  from sticking to the bottom. */
20
- const bottomMargin = !needSafeAreaMargin || excludeSafeAreaMargins ? _core.IOVisualCostants.appMarginDefault : insets.bottom;
22
+ const bottomMargin = !needSafeAreaMargin || excludeSafeAreaMargins ? _core.IOVisualCostants.appMarginDefault : insets.bottom + edgeToEdgeMargin;
21
23
 
22
24
  /* When the secondary action is visible, add extra margin
23
25
  to avoid little space from iPhone bottom handle */
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeSafeAreaContext","require","_core","extraSafeAreaMargin","useBottomMargins","withSecondaryAction","excludeSafeAreaMargins","insets","useSafeAreaInsets","needSafeAreaMargin","bottom","bottomMargin","IOVisualCostants","appMarginDefault","extraBottomMargin","exports"],"sourceRoot":"../../../../../src","sources":["components/layout/hooks/useBottomMargins.ts"],"mappings":";;;;;;AAAA,IAAAA,2BAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAEA;AACA;AACA,MAAME,mBAAmC,GAAG,CAAC;AAEtC,MAAMC,gBAAgB,GAAGA,CAC9BC,mBAA4B,GAAG,KAAK,EACpCC,sBAA+B,GAAG,KAAK,KACpC;EACH,MAAMC,MAAM,GAAG,IAAAC,6CAAiB,EAAC,CAAC;EAClC,MAAMC,kBAAkB,GAAGF,MAAM,CAACG,MAAM,KAAK,CAAC;;EAE9C;AACF;AACA;AACA;EACE,MAAMC,YAAY,GAChB,CAACF,kBAAkB,IAAIH,sBAAsB,GACzCM,sBAAgB,CAACC,gBAAgB,GACjCN,MAAM,CAACG,MAAM;;EAEnB;AACF;EACE,MAAMI,iBAAiB,GACrBT,mBAAmB,IAAII,kBAAkB,GAAGN,mBAAmB,GAAG,CAAC;EAErE,OAAO;IAAEQ,YAAY;IAAEG;EAAkB,CAAC;AAC5C,CAAC;AAACC,OAAA,CAAAX,gBAAA,GAAAA,gBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_reactNativeSafeAreaContext","_core","extraSafeAreaMargin","useBottomMargins","withSecondaryAction","excludeSafeAreaMargins","insets","useSafeAreaInsets","needSafeAreaMargin","bottom","edgeToEdgeMargin","Platform","OS","bottomMargin","IOVisualCostants","appMarginDefault","extraBottomMargin","exports"],"sourceRoot":"../../../../../src","sources":["components/layout/hooks/useBottomMargins.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,2BAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAEA;AACA;AACA,MAAMG,mBAAmC,GAAG,CAAC;AAEtC,MAAMC,gBAAgB,GAAGA,CAC9BC,mBAA4B,GAAG,KAAK,EACpCC,sBAA+B,GAAG,KAAK,KACpC;EACH,MAAMC,MAAM,GAAG,IAAAC,6CAAiB,EAAC,CAAC;EAClC,MAAMC,kBAAkB,GAAGF,MAAM,CAACG,MAAM,KAAK,CAAC;EAC9C,MAAMC,gBAAgB,GAAGC,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC;;EAEtD;AACF;AACA;AACA;EACE,MAAMC,YAAY,GAChB,CAACL,kBAAkB,IAAIH,sBAAsB,GACzCS,sBAAgB,CAACC,gBAAgB,GACjCT,MAAM,CAACG,MAAM,GAAGC,gBAAgB;;EAEtC;AACF;EACE,MAAMM,iBAAiB,GACrBZ,mBAAmB,IAAII,kBAAkB,GAAGN,mBAAmB,GAAG,CAAC;EAErE,OAAO;IAAEW,YAAY;IAAEG;EAAkB,CAAC;AAC5C,CAAC;AAACC,OAAA,CAAAd,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -7,6 +7,7 @@ exports.ForceScrollDownView = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _reactNative = require("react-native");
9
9
  var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
10
+ var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
10
11
  var _core = require("../../core");
11
12
  var _buttons = require("../buttons");
12
13
  var _layout = require("../layout");
@@ -30,6 +31,7 @@ const ForceScrollDownView = ({
30
31
  }) => {
31
32
  const internalAnimatedRef = (0, _reactNativeReanimated.useAnimatedRef)();
32
33
  const scrollViewRef = animatedRef ?? internalAnimatedRef;
34
+ const insets = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)();
33
35
  const {
34
36
  footerActionsInlineMeasurements,
35
37
  handleFooterActionsInlineMeasurements
@@ -98,8 +100,14 @@ const ForceScrollDownView = ({
98
100
  scale: (0, _reactNativeReanimated.interpolate)(isButtonVisible.value, [0, 1], [0.5, 1])
99
101
  }]
100
102
  }));
103
+ const androidEdgeToEdgeMargin = _reactNative.Platform.OS === "ios" ? 0 : insets.bottom;
104
+
105
+ // Calculate bottom position including safe area insets
106
+ const scrollDownButtonBottom = _core.IOVisualCostants.scrollDownButtonBottom + androidEdgeToEdgeMargin;
101
107
  const scrollDownButton = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
102
- style: [styles.scrollDownButton, buttonTransitionStyle],
108
+ style: [styles.scrollDownButton, {
109
+ bottom: scrollDownButtonBottom
110
+ }, buttonTransitionStyle],
103
111
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_buttons.IconButtonSolid, {
104
112
  testID: "ScrollDownButton",
105
113
  accessibilityLabel: "Scroll to bottom",
@@ -129,8 +137,7 @@ const styles = _reactNative.StyleSheet.create({
129
137
  scrollDownButton: {
130
138
  position: "absolute",
131
139
  zIndex: 10,
132
- right: _core.IOVisualCostants.scrollDownButtonRight,
133
- bottom: _core.IOVisualCostants.scrollDownButtonBottom
140
+ right: _core.IOVisualCostants.scrollDownButtonRight
134
141
  }
135
142
  });
136
143
  //# sourceMappingURL=ForceScrollDownView.js.map
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_reactNativeSafeAreaContext","_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","insets","useSafeAreaInsets","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","androidEdgeToEdgeMargin","Platform","OS","bottom","scrollDownButtonBottom","IOVisualCostants","scrollDownButton","jsx","View","styles","IconButtonSolid","testID","accessibilityLabel","icon","onPress","jsxs","Fragment","ScrollView","ref","onLayout","onContentSizeChange","FooterActions","onMeasure","fixed","exports","StyleSheet","create","position","zIndex","right","scrollDownButtonRight"],"sourceRoot":"../../../../src","sources":["components/templates/ForceScrollDownView.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ import { Platform } from "react-native";
3
4
  import { useSafeAreaInsets } from "react-native-safe-area-context";
4
5
  import { IOVisualCostants } from "../../../core";
5
6
 
@@ -9,12 +10,13 @@ const extraSafeAreaMargin = 8;
9
10
  export const useBottomMargins = (withSecondaryAction = false, excludeSafeAreaMargins = false) => {
10
11
  const insets = useSafeAreaInsets();
11
12
  const needSafeAreaMargin = insets.bottom !== 0;
13
+ const edgeToEdgeMargin = Platform.OS === "ios" ? 0 : 8;
12
14
 
13
15
  /* Check if the iPhone bottom handle is present.
14
16
  If not, or if you don't need safe area insets,
15
17
  add a default margin to prevent the button
16
18
  from sticking to the bottom. */
17
- const bottomMargin = !needSafeAreaMargin || excludeSafeAreaMargins ? IOVisualCostants.appMarginDefault : insets.bottom;
19
+ const bottomMargin = !needSafeAreaMargin || excludeSafeAreaMargins ? IOVisualCostants.appMarginDefault : insets.bottom + edgeToEdgeMargin;
18
20
 
19
21
  /* When the secondary action is visible, add extra margin
20
22
  to avoid little space from iPhone bottom handle */
@@ -1 +1 @@
1
- {"version":3,"names":["useSafeAreaInsets","IOVisualCostants","extraSafeAreaMargin","useBottomMargins","withSecondaryAction","excludeSafeAreaMargins","insets","needSafeAreaMargin","bottom","bottomMargin","appMarginDefault","extraBottomMargin"],"sourceRoot":"../../../../../src","sources":["components/layout/hooks/useBottomMargins.ts"],"mappings":";;AAAA,SAASA,iBAAiB,QAAQ,gCAAgC;AAClE,SAAyBC,gBAAgB,QAAQ,eAAe;;AAEhE;AACA;AACA,MAAMC,mBAAmC,GAAG,CAAC;AAE7C,OAAO,MAAMC,gBAAgB,GAAGA,CAC9BC,mBAA4B,GAAG,KAAK,EACpCC,sBAA+B,GAAG,KAAK,KACpC;EACH,MAAMC,MAAM,GAAGN,iBAAiB,CAAC,CAAC;EAClC,MAAMO,kBAAkB,GAAGD,MAAM,CAACE,MAAM,KAAK,CAAC;;EAE9C;AACF;AACA;AACA;EACE,MAAMC,YAAY,GAChB,CAACF,kBAAkB,IAAIF,sBAAsB,GACzCJ,gBAAgB,CAACS,gBAAgB,GACjCJ,MAAM,CAACE,MAAM;;EAEnB;AACF;EACE,MAAMG,iBAAiB,GACrBP,mBAAmB,IAAIG,kBAAkB,GAAGL,mBAAmB,GAAG,CAAC;EAErE,OAAO;IAAEO,YAAY;IAAEE;EAAkB,CAAC;AAC5C,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Platform","useSafeAreaInsets","IOVisualCostants","extraSafeAreaMargin","useBottomMargins","withSecondaryAction","excludeSafeAreaMargins","insets","needSafeAreaMargin","bottom","edgeToEdgeMargin","OS","bottomMargin","appMarginDefault","extraBottomMargin"],"sourceRoot":"../../../../../src","sources":["components/layout/hooks/useBottomMargins.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,SAAyBC,gBAAgB,QAAQ,eAAe;;AAEhE;AACA;AACA,MAAMC,mBAAmC,GAAG,CAAC;AAE7C,OAAO,MAAMC,gBAAgB,GAAGA,CAC9BC,mBAA4B,GAAG,KAAK,EACpCC,sBAA+B,GAAG,KAAK,KACpC;EACH,MAAMC,MAAM,GAAGN,iBAAiB,CAAC,CAAC;EAClC,MAAMO,kBAAkB,GAAGD,MAAM,CAACE,MAAM,KAAK,CAAC;EAC9C,MAAMC,gBAAgB,GAAGV,QAAQ,CAACW,EAAE,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC;;EAEtD;AACF;AACA;AACA;EACE,MAAMC,YAAY,GAChB,CAACJ,kBAAkB,IAAIF,sBAAsB,GACzCJ,gBAAgB,CAACW,gBAAgB,GACjCN,MAAM,CAACE,MAAM,GAAGC,gBAAgB;;EAEtC;AACF;EACE,MAAMI,iBAAiB,GACrBT,mBAAmB,IAAIG,kBAAkB,GAAGL,mBAAmB,GAAG,CAAC;EAErE,OAAO;IAAES,YAAY;IAAEE;EAAkB,CAAC;AAC5C,CAAC","ignoreList":[]}
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
 
3
3
  import React, { useCallback } from "react";
4
- import { StyleSheet } from "react-native";
4
+ import { Platform, StyleSheet } from "react-native";
5
5
  import Animated, { interpolate, runOnJS, runOnUI, scrollTo, useAnimatedReaction, useAnimatedRef, useAnimatedStyle, useScrollViewOffset, useSharedValue, withSpring } from "react-native-reanimated";
6
+ import { useSafeAreaInsets } from "react-native-safe-area-context";
6
7
  import { IOSpringValues, IOVisualCostants } from "../../core";
7
8
  import { IconButtonSolid } from "../buttons";
8
9
  import { FooterActions, useFooterActionsInlineMeasurements } from "../layout";
@@ -25,6 +26,7 @@ const ForceScrollDownView = ({
25
26
  }) => {
26
27
  const internalAnimatedRef = useAnimatedRef();
27
28
  const scrollViewRef = animatedRef ?? internalAnimatedRef;
29
+ const insets = useSafeAreaInsets();
28
30
  const {
29
31
  footerActionsInlineMeasurements,
30
32
  handleFooterActionsInlineMeasurements
@@ -93,8 +95,14 @@ const ForceScrollDownView = ({
93
95
  scale: interpolate(isButtonVisible.value, [0, 1], [0.5, 1])
94
96
  }]
95
97
  }));
98
+ const androidEdgeToEdgeMargin = Platform.OS === "ios" ? 0 : insets.bottom;
99
+
100
+ // Calculate bottom position including safe area insets
101
+ const scrollDownButtonBottom = IOVisualCostants.scrollDownButtonBottom + androidEdgeToEdgeMargin;
96
102
  const scrollDownButton = /*#__PURE__*/_jsx(Animated.View, {
97
- style: [styles.scrollDownButton, buttonTransitionStyle],
103
+ style: [styles.scrollDownButton, {
104
+ bottom: scrollDownButtonBottom
105
+ }, buttonTransitionStyle],
98
106
  children: /*#__PURE__*/_jsx(IconButtonSolid, {
99
107
  testID: "ScrollDownButton",
100
108
  accessibilityLabel: "Scroll to bottom",
@@ -123,8 +131,7 @@ const styles = StyleSheet.create({
123
131
  scrollDownButton: {
124
132
  position: "absolute",
125
133
  zIndex: 10,
126
- right: IOVisualCostants.scrollDownButtonRight,
127
- bottom: IOVisualCostants.scrollDownButtonBottom
134
+ right: IOVisualCostants.scrollDownButtonRight
128
135
  }
129
136
  });
130
137
  export { ForceScrollDownView };
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"names":["React","useCallback","Platform","StyleSheet","Animated","interpolate","runOnJS","runOnUI","scrollTo","useAnimatedReaction","useAnimatedRef","useAnimatedStyle","useScrollViewOffset","useSharedValue","withSpring","useSafeAreaInsets","IOSpringValues","IOVisualCostants","IconButtonSolid","FooterActions","useFooterActionsInlineMeasurements","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ForceScrollDownView","footerActions","children","threshold","customThreshold","style","contentContainerStyle","scrollEnabled","onThresholdCrossed","animatedRef","internalAnimatedRef","scrollViewRef","insets","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","androidEdgeToEdgeMargin","OS","bottom","scrollDownButtonBottom","scrollDownButton","View","styles","testID","accessibilityLabel","icon","onPress","ScrollView","ref","onLayout","onContentSizeChange","onMeasure","fixed","create","position","zIndex","right","scrollDownButtonRight"],"sourceRoot":"../../../../src","sources":["components/templates/ForceScrollDownView.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useBottomMargins.d.ts","sourceRoot":"","sources":["../../../../../src/components/layout/hooks/useBottomMargins.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,gBAAgB,GAC3B,sBAAqB,OAAe,EACpC,yBAAwB,OAAe;;;CAoBxC,CAAC"}
1
+ {"version":3,"file":"useBottomMargins.d.ts","sourceRoot":"","sources":["../../../../../src/components/layout/hooks/useBottomMargins.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,gBAAgB,GAC3B,sBAAqB,OAAe,EACpC,yBAAwB,OAAe;;;CAqBxC,CAAC"}
@@ -1 +1 @@
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
+ {"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,EAGL,eAAe,EAEhB,MAAM,cAAc,CAAC;AACtB,OAAO,QAAQ,EAAE,EACf,WAAW,EAWZ,MAAM,yBAAyB,CAAC;AAIjC,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,sBAsIrB,CAAC;AAUF,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pagopa/io-app-design-system",
3
- "version": "5.11.17",
3
+ "version": "5.11.18",
4
4
  "description": "The library defining the core components of the design system of @pagopa/io-app",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -1,3 +1,4 @@
1
+ import { Platform } from "react-native";
1
2
  import { useSafeAreaInsets } from "react-native-safe-area-context";
2
3
  import { IOSpacingScale, IOVisualCostants } from "../../../core";
3
4
 
@@ -11,6 +12,7 @@ export const useBottomMargins = (
11
12
  ) => {
12
13
  const insets = useSafeAreaInsets();
13
14
  const needSafeAreaMargin = insets.bottom !== 0;
15
+ const edgeToEdgeMargin = Platform.OS === "ios" ? 0 : 8;
14
16
 
15
17
  /* Check if the iPhone bottom handle is present.
16
18
  If not, or if you don't need safe area insets,
@@ -19,7 +21,7 @@ export const useBottomMargins = (
19
21
  const bottomMargin =
20
22
  !needSafeAreaMargin || excludeSafeAreaMargins
21
23
  ? IOVisualCostants.appMarginDefault
22
- : insets.bottom;
24
+ : insets.bottom + edgeToEdgeMargin;
23
25
 
24
26
  /* When the secondary action is visible, add extra margin
25
27
  to avoid little space from iPhone bottom handle */
@@ -1,5 +1,10 @@
1
1
  import React, { ComponentProps, ReactNode, useCallback } from "react";
2
- import { LayoutChangeEvent, ScrollViewProps, StyleSheet } from "react-native";
2
+ import {
3
+ LayoutChangeEvent,
4
+ Platform,
5
+ ScrollViewProps,
6
+ StyleSheet
7
+ } from "react-native";
3
8
  import Animated, {
4
9
  AnimatedRef,
5
10
  interpolate,
@@ -13,6 +18,7 @@ import Animated, {
13
18
  useSharedValue,
14
19
  withSpring
15
20
  } from "react-native-reanimated";
21
+ import { useSafeAreaInsets } from "react-native-safe-area-context";
16
22
  import { IOSpringValues, IOVisualCostants } from "../../core";
17
23
  import { IconButtonSolid } from "../buttons";
18
24
  import { FooterActions, useFooterActionsInlineMeasurements } from "../layout";
@@ -80,6 +86,7 @@ const ForceScrollDownView = ({
80
86
  }: ForceScrollDownView) => {
81
87
  const internalAnimatedRef = useAnimatedRef<Animated.ScrollView>();
82
88
  const scrollViewRef = animatedRef ?? internalAnimatedRef;
89
+ const insets = useSafeAreaInsets();
83
90
 
84
91
  const {
85
92
  footerActionsInlineMeasurements,
@@ -164,8 +171,20 @@ const ForceScrollDownView = ({
164
171
  transform: [{ scale: interpolate(isButtonVisible.value, [0, 1], [0.5, 1]) }]
165
172
  }));
166
173
 
174
+ const androidEdgeToEdgeMargin = Platform.OS === "ios" ? 0 : insets.bottom;
175
+
176
+ // Calculate bottom position including safe area insets
177
+ const scrollDownButtonBottom =
178
+ IOVisualCostants.scrollDownButtonBottom + androidEdgeToEdgeMargin;
179
+
167
180
  const scrollDownButton = (
168
- <Animated.View style={[styles.scrollDownButton, buttonTransitionStyle]}>
181
+ <Animated.View
182
+ style={[
183
+ styles.scrollDownButton,
184
+ { bottom: scrollDownButtonBottom },
185
+ buttonTransitionStyle
186
+ ]}
187
+ >
169
188
  <IconButtonSolid
170
189
  testID={"ScrollDownButton"}
171
190
  accessibilityLabel="Scroll to bottom"
@@ -204,8 +223,7 @@ const styles = StyleSheet.create({
204
223
  scrollDownButton: {
205
224
  position: "absolute",
206
225
  zIndex: 10,
207
- right: IOVisualCostants.scrollDownButtonRight,
208
- bottom: IOVisualCostants.scrollDownButtonBottom
226
+ right: IOVisualCostants.scrollDownButtonRight
209
227
  }
210
228
  });
211
229