@pagopa/io-app-design-system 1.2.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/lib/commonjs/components/accordion/RawAccordion.js.map +1 -1
  2. package/lib/commonjs/components/alert/Alert.js.map +1 -1
  3. package/lib/commonjs/components/avatar/__test__/avatar.test.js.map +1 -1
  4. package/lib/commonjs/components/badge/Badge.js.map +1 -1
  5. package/lib/commonjs/components/banner/Banner.js +1 -1
  6. package/lib/commonjs/components/banner/Banner.js.map +1 -1
  7. package/lib/commonjs/components/banner/__test__/banner.test.js.map +1 -1
  8. package/lib/commonjs/components/buttons/ButtonExtendedOutline.js.map +1 -1
  9. package/lib/commonjs/components/buttons/ButtonOutline.js +3 -3
  10. package/lib/commonjs/components/buttons/ButtonOutline.js.map +1 -1
  11. package/lib/commonjs/components/buttons/ButtonSolid.js +3 -3
  12. package/lib/commonjs/components/buttons/ButtonSolid.js.map +1 -1
  13. package/lib/commonjs/components/contentWrapper/ContentWrapper.js.map +1 -1
  14. package/lib/commonjs/components/listitems/ListItemAction.js.map +1 -1
  15. package/lib/commonjs/components/listitems/ListItemIDP.js.map +1 -1
  16. package/lib/commonjs/components/listitems/ListItemNavAlert.js.map +1 -1
  17. package/lib/commonjs/components/listitems/ListItemTransaction.js.map +1 -1
  18. package/lib/commonjs/components/listitems/PressableListItemsBase.js.map +1 -1
  19. package/lib/commonjs/components/listitems/__test__/listitem.test.js.map +1 -1
  20. package/lib/commonjs/components/listitems/hooks/useListItemSpringAnimation.js.map +1 -1
  21. package/lib/commonjs/components/pictograms/Pictogram.js +7 -3
  22. package/lib/commonjs/components/pictograms/Pictogram.js.map +1 -1
  23. package/lib/commonjs/components/pictograms/svg/PictogramFocusOn.js +56 -0
  24. package/lib/commonjs/components/pictograms/svg/PictogramFocusOn.js.map +1 -0
  25. package/lib/commonjs/components/pictograms/svg/originals/PictogramFocusOn.svg +19 -0
  26. package/lib/commonjs/components/spacer/Spacer.js.map +1 -1
  27. package/lib/commonjs/components/typography/Body.js.map +1 -1
  28. package/lib/commonjs/components/typography/Factory.js.map +1 -1
  29. package/lib/commonjs/components/typography/H1.js.map +1 -1
  30. package/lib/commonjs/components/typography/H2.js.map +1 -1
  31. package/lib/commonjs/components/typography/H4.js.map +1 -1
  32. package/lib/commonjs/components/typography/H5.js.map +1 -1
  33. package/lib/commonjs/components/typography/H6.js.map +1 -1
  34. package/lib/commonjs/components/typography/Label.js.map +1 -1
  35. package/lib/commonjs/components/typography/LabelSmall.js.map +1 -1
  36. package/lib/commonjs/components/typography/Monospace.js.map +1 -1
  37. package/lib/commonjs/components/typography/common.js +2 -2
  38. package/lib/commonjs/components/typography/common.js.map +1 -1
  39. package/lib/commonjs/utils/image.js.map +1 -1
  40. package/lib/module/components/accordion/RawAccordion.js.map +1 -1
  41. package/lib/module/components/alert/Alert.js.map +1 -1
  42. package/lib/module/components/avatar/__test__/avatar.test.js.map +1 -1
  43. package/lib/module/components/badge/Badge.js.map +1 -1
  44. package/lib/module/components/banner/Banner.js +1 -1
  45. package/lib/module/components/banner/Banner.js.map +1 -1
  46. package/lib/module/components/banner/__test__/banner.test.js.map +1 -1
  47. package/lib/module/components/buttons/ButtonExtendedOutline.js.map +1 -1
  48. package/lib/module/components/buttons/ButtonOutline.js +3 -3
  49. package/lib/module/components/buttons/ButtonOutline.js.map +1 -1
  50. package/lib/module/components/buttons/ButtonSolid.js +3 -3
  51. package/lib/module/components/buttons/ButtonSolid.js.map +1 -1
  52. package/lib/module/components/buttons/IconButtonContained.js.map +1 -1
  53. package/lib/module/components/buttons/IconButtonSolid.js.map +1 -1
  54. package/lib/module/components/contentWrapper/ContentWrapper.js.map +1 -1
  55. package/lib/module/components/listitems/ListItemAction.js.map +1 -1
  56. package/lib/module/components/listitems/ListItemIDP.js.map +1 -1
  57. package/lib/module/components/listitems/ListItemNavAlert.js.map +1 -1
  58. package/lib/module/components/listitems/ListItemTransaction.js.map +1 -1
  59. package/lib/module/components/listitems/PressableListItemsBase.js.map +1 -1
  60. package/lib/module/components/listitems/__test__/listitem.test.js.map +1 -1
  61. package/lib/module/components/listitems/hooks/useListItemSpringAnimation.js.map +1 -1
  62. package/lib/module/components/pictograms/Pictogram.js +7 -3
  63. package/lib/module/components/pictograms/Pictogram.js.map +1 -1
  64. package/lib/module/components/pictograms/svg/PictogramFocusOn.js +48 -0
  65. package/lib/module/components/pictograms/svg/PictogramFocusOn.js.map +1 -0
  66. package/lib/module/components/pictograms/svg/originals/PictogramFocusOn.svg +19 -0
  67. package/lib/module/components/spacer/Spacer.js.map +1 -1
  68. package/lib/module/components/typography/Body.js.map +1 -1
  69. package/lib/module/components/typography/Factory.js.map +1 -1
  70. package/lib/module/components/typography/H1.js.map +1 -1
  71. package/lib/module/components/typography/H2.js.map +1 -1
  72. package/lib/module/components/typography/H4.js.map +1 -1
  73. package/lib/module/components/typography/H5.js.map +1 -1
  74. package/lib/module/components/typography/H6.js.map +1 -1
  75. package/lib/module/components/typography/Label.js.map +1 -1
  76. package/lib/module/components/typography/LabelSmall.js.map +1 -1
  77. package/lib/module/components/typography/Monospace.js.map +1 -1
  78. package/lib/module/components/typography/common.js +2 -2
  79. package/lib/module/components/typography/common.js.map +1 -1
  80. package/lib/module/utils/image.js.map +1 -1
  81. package/lib/typescript/components/alert/Alert.d.ts.map +1 -1
  82. package/lib/typescript/components/badge/Badge.d.ts.map +1 -1
  83. package/lib/typescript/components/banner/Banner.d.ts.map +1 -1
  84. package/lib/typescript/components/buttons/ButtonExtendedOutline.d.ts.map +1 -1
  85. package/lib/typescript/components/buttons/ButtonOutline.d.ts.map +1 -1
  86. package/lib/typescript/components/buttons/ButtonSolid.d.ts.map +1 -1
  87. package/lib/typescript/components/buttons/IconButtonContained.d.ts.map +1 -1
  88. package/lib/typescript/components/contentWrapper/ContentWrapper.d.ts.map +1 -1
  89. package/lib/typescript/components/listitems/ListItemAction.d.ts.map +1 -1
  90. package/lib/typescript/components/listitems/ListItemIDP.d.ts +1 -1
  91. package/lib/typescript/components/listitems/ListItemIDP.d.ts.map +1 -1
  92. package/lib/typescript/components/listitems/ListItemNavAlert.d.ts.map +1 -1
  93. package/lib/typescript/components/listitems/ListItemTransaction.d.ts.map +1 -1
  94. package/lib/typescript/components/listitems/PressableListItemsBase.d.ts.map +1 -1
  95. package/lib/typescript/components/listitems/hooks/useListItemSpringAnimation.d.ts.map +1 -1
  96. package/lib/typescript/components/pictograms/Pictogram.d.ts +2 -0
  97. package/lib/typescript/components/pictograms/Pictogram.d.ts.map +1 -1
  98. package/lib/typescript/components/pictograms/svg/PictogramFocusOn.d.ts +5 -0
  99. package/lib/typescript/components/pictograms/svg/PictogramFocusOn.d.ts.map +1 -0
  100. package/lib/typescript/components/spacer/Spacer.d.ts.map +1 -1
  101. package/lib/typescript/components/typography/Body.d.ts.map +1 -1
  102. package/lib/typescript/components/typography/Factory.d.ts.map +1 -1
  103. package/lib/typescript/components/typography/H1.d.ts.map +1 -1
  104. package/lib/typescript/components/typography/H2.d.ts.map +1 -1
  105. package/lib/typescript/components/typography/H4.d.ts.map +1 -1
  106. package/lib/typescript/components/typography/H5.d.ts.map +1 -1
  107. package/lib/typescript/components/typography/H6.d.ts.map +1 -1
  108. package/lib/typescript/components/typography/Label.d.ts.map +1 -1
  109. package/lib/typescript/components/typography/LabelSmall.d.ts.map +1 -1
  110. package/lib/typescript/components/typography/Monospace.d.ts.map +1 -1
  111. package/lib/typescript/components/typography/common.d.ts +2 -2
  112. package/lib/typescript/components/typography/common.d.ts.map +1 -1
  113. package/lib/typescript/utils/image.d.ts.map +1 -1
  114. package/package.json +3 -2
  115. package/src/components/Advice/index.tsx +1 -1
  116. package/src/components/accordion/RawAccordion.tsx +3 -3
  117. package/src/components/alert/Alert.tsx +4 -1
  118. package/src/components/avatar/Avatar.tsx +1 -1
  119. package/src/components/avatar/__test__/avatar.test.tsx +7 -4
  120. package/src/components/avatar/index.tsx +1 -1
  121. package/src/components/badge/Badge.tsx +16 -11
  122. package/src/components/banner/Banner.tsx +206 -195
  123. package/src/components/banner/__test__/banner.test.tsx +11 -9
  124. package/src/components/banner/index.tsx +1 -1
  125. package/src/components/buttons/ButtonExtendedOutline.tsx +80 -80
  126. package/src/components/buttons/ButtonOutline.tsx +278 -280
  127. package/src/components/buttons/ButtonSolid.tsx +142 -141
  128. package/src/components/buttons/IconButtonContained.tsx +17 -17
  129. package/src/components/buttons/IconButtonSolid.tsx +11 -11
  130. package/src/components/contentWrapper/ContentWrapper.tsx +12 -12
  131. package/src/components/contentWrapper/index.tsx +1 -1
  132. package/src/components/divider/index.tsx +1 -1
  133. package/src/components/icons/index.tsx +1 -1
  134. package/src/components/listitems/ListItemAction.tsx +120 -119
  135. package/src/components/listitems/ListItemIDP.tsx +115 -115
  136. package/src/components/listitems/ListItemNavAlert.tsx +114 -110
  137. package/src/components/listitems/ListItemTransaction.tsx +2 -6
  138. package/src/components/listitems/PressableListItemsBase.tsx +29 -29
  139. package/src/components/listitems/__test__/listitem.test.tsx +53 -15
  140. package/src/components/listitems/hooks/useListItemSpringAnimation.ts +54 -52
  141. package/src/components/pictograms/Pictogram.tsx +6 -3
  142. package/src/components/pictograms/svg/PictogramFocusOn.tsx +39 -0
  143. package/src/components/pictograms/svg/originals/PictogramFocusOn.svg +19 -0
  144. package/src/components/spacer/Spacer.tsx +21 -18
  145. package/src/components/spacer/index.tsx +1 -1
  146. package/src/components/typography/Body.tsx +10 -10
  147. package/src/components/typography/Factory.tsx +38 -38
  148. package/src/components/typography/H1.tsx +19 -19
  149. package/src/components/typography/H2.tsx +19 -19
  150. package/src/components/typography/H4.tsx +12 -12
  151. package/src/components/typography/H5.tsx +24 -24
  152. package/src/components/typography/H6.tsx +10 -10
  153. package/src/components/typography/Label.tsx +16 -16
  154. package/src/components/typography/LabelSmall.tsx +27 -28
  155. package/src/components/typography/Monospace.tsx +14 -14
  156. package/src/components/typography/common.tsx +20 -20
  157. package/src/components/typography/index.tsx +0 -1
  158. package/src/index.tsx +0 -1
  159. package/src/json-import.d.ts +3 -4
  160. package/src/utils/dates.ts +1 -1
  161. package/src/utils/image.ts +22 -22
@@ -1,154 +1,155 @@
1
1
  import React, { useCallback } from "react";
2
2
  import {
3
- GestureResponderEvent,
4
- Pressable,
5
- StyleSheet,
6
- Text,
7
- View
3
+ GestureResponderEvent,
4
+ Pressable,
5
+ StyleSheet,
6
+ Text,
7
+ View
8
8
  } from "react-native";
9
9
  import Animated, {
10
- Extrapolate,
11
- interpolate,
12
- interpolateColor,
13
- useAnimatedStyle,
14
- useDerivedValue,
15
- useSharedValue,
16
- withSpring
10
+ Extrapolate,
11
+ interpolate,
12
+ interpolateColor,
13
+ useAnimatedStyle,
14
+ useDerivedValue,
15
+ useSharedValue,
16
+ withSpring
17
17
  } from "react-native-reanimated";
18
18
  import {
19
- IOColors,
20
- IOListItemStyles,
21
- IOListItemVisualParams,
22
- IOScaleValues,
23
- IOSpringValues,
24
- IOStyles,
25
- hexToRgba, useIOTheme
19
+ IOColors,
20
+ IOListItemStyles,
21
+ IOListItemVisualParams,
22
+ IOScaleValues,
23
+ IOSpringValues,
24
+ IOStyles,
25
+ hexToRgba,
26
+ useIOTheme
26
27
  } from "../../core";
27
28
  import { makeFontStyleObject } from "../../utils/fonts";
28
29
  import { WithTestID } from "../../utils/types";
29
30
  import { AnimatedIcon, IOIcons } from "../icons";
30
31
 
31
32
  export type ListItemAction = WithTestID<{
32
- label: string;
33
- variant: "primary" | "danger";
34
- onPress: (event: GestureResponderEvent) => void;
35
- icon?: IOIcons;
36
- // Accessibility
37
- accessibilityLabel: string;
33
+ label: string;
34
+ variant: "primary" | "danger";
35
+ onPress: (event: GestureResponderEvent) => void;
36
+ icon?: IOIcons;
37
+ // Accessibility
38
+ accessibilityLabel: string;
38
39
  }>;
39
40
 
40
41
  const styles = StyleSheet.create({
41
- label: {
42
- fontSize: 16,
43
- lineHeight: 20,
44
- ...makeFontStyleObject("Regular", false, "ReadexPro")
45
- },
42
+ label: {
43
+ fontSize: 16,
44
+ lineHeight: 20,
45
+ ...makeFontStyleObject("Regular", false, "ReadexPro")
46
+ }
46
47
  });
47
48
 
48
49
  export const ListItemAction = ({
49
- variant,
50
- label,
51
- onPress,
52
- icon,
53
- accessibilityLabel,
54
- testID
50
+ variant,
51
+ label,
52
+ onPress,
53
+ icon,
54
+ accessibilityLabel,
55
+ testID
55
56
  }: ListItemAction) => {
56
- const isPressed = useSharedValue(0);
57
+ const isPressed = useSharedValue(0);
57
58
 
58
- const theme = useIOTheme();
59
+ const theme = useIOTheme();
59
60
 
60
- const mapBackgroundStates: Record<string, string> = {
61
- default: hexToRgba(IOColors[theme["listItem-pressed"]], 0),
62
- pressed: IOColors[theme["listItem-pressed"]]
63
- };
61
+ const mapBackgroundStates: Record<string, string> = {
62
+ default: hexToRgba(IOColors[theme["listItem-pressed"]], 0),
63
+ pressed: IOColors[theme["listItem-pressed"]]
64
+ };
64
65
 
65
- const mapForegroundColor: Record<
66
- NonNullable<ListItemAction["variant"]>,
67
- string
68
- > = {
69
- primary: IOColors[theme["interactiveElem-default"]],
70
- danger: IOColors[theme.errorText]
71
- };
66
+ const mapForegroundColor: Record<
67
+ NonNullable<ListItemAction["variant"]>,
68
+ string
69
+ > = {
70
+ primary: IOColors[theme["interactiveElem-default"]],
71
+ danger: IOColors[theme.errorText]
72
+ };
72
73
 
73
- // Scaling transformation applied when the button is pressed
74
- const animationScaleValue = IOScaleValues?.basicButton?.pressedState;
74
+ // Scaling transformation applied when the button is pressed
75
+ const animationScaleValue = IOScaleValues?.basicButton?.pressedState;
75
76
 
76
- const progressPressed = useDerivedValue(() =>
77
- withSpring(isPressed.value, IOSpringValues.button)
78
- );
77
+ const progressPressed = useDerivedValue(() =>
78
+ withSpring(isPressed.value, IOSpringValues.button)
79
+ );
79
80
 
80
- // Interpolate animation values from `isPressed` values
81
- const animatedScaleStyle = useAnimatedStyle(() => {
82
- const scale = interpolate(
83
- progressPressed.value,
84
- [0, 1],
85
- [1, animationScaleValue],
86
- Extrapolate.CLAMP
87
- );
81
+ // Interpolate animation values from `isPressed` values
82
+ const animatedScaleStyle = useAnimatedStyle(() => {
83
+ const scale = interpolate(
84
+ progressPressed.value,
85
+ [0, 1],
86
+ [1, animationScaleValue],
87
+ Extrapolate.CLAMP
88
+ );
88
89
 
89
- return {
90
- transform: [{ scale }]
91
- };
92
- });
90
+ return {
91
+ transform: [{ scale }]
92
+ };
93
+ });
93
94
 
94
- const animatedBackgroundStyle = useAnimatedStyle(() => {
95
- const backgroundColor = interpolateColor(
96
- progressPressed.value,
97
- [0, 1],
98
- [mapBackgroundStates.default, mapBackgroundStates.pressed]
99
- );
95
+ const animatedBackgroundStyle = useAnimatedStyle(() => {
96
+ const backgroundColor = interpolateColor(
97
+ progressPressed.value,
98
+ [0, 1],
99
+ [mapBackgroundStates.default, mapBackgroundStates.pressed]
100
+ );
100
101
 
101
- return {
102
- backgroundColor
103
- };
104
- });
102
+ return {
103
+ backgroundColor
104
+ };
105
+ });
105
106
 
106
- const handlePressIn = useCallback(() => {
107
- // eslint-disable-next-line functional/immutable-data
108
- isPressed.value = 1;
109
- }, [isPressed]);
110
- const handlePressOut = useCallback(() => {
111
- // eslint-disable-next-line functional/immutable-data
112
- isPressed.value = 0;
113
- }, [isPressed]);
107
+ const handlePressIn = useCallback(() => {
108
+ // eslint-disable-next-line functional/immutable-data
109
+ isPressed.value = 1;
110
+ }, [isPressed]);
111
+ const handlePressOut = useCallback(() => {
112
+ // eslint-disable-next-line functional/immutable-data
113
+ isPressed.value = 0;
114
+ }, [isPressed]);
114
115
 
115
- return (
116
- <Pressable
117
- onPress={onPress}
118
- onPressIn={handlePressIn}
119
- onPressOut={handlePressOut}
120
- onTouchEnd={handlePressOut}
121
- accessible={true}
122
- accessibilityLabel={accessibilityLabel}
123
- accessibilityRole="button"
124
- testID={testID}
116
+ return (
117
+ <Pressable
118
+ onPress={onPress}
119
+ onPressIn={handlePressIn}
120
+ onPressOut={handlePressOut}
121
+ onTouchEnd={handlePressOut}
122
+ accessible={true}
123
+ accessibilityLabel={accessibilityLabel}
124
+ accessibilityRole="button"
125
+ testID={testID}
126
+ >
127
+ <Animated.View
128
+ style={[IOListItemStyles.listItem, animatedBackgroundStyle]}
129
+ >
130
+ <Animated.View
131
+ style={[IOListItemStyles.listItemInner, animatedScaleStyle]}
125
132
  >
126
- <Animated.View
127
- style={[IOListItemStyles.listItem, animatedBackgroundStyle]}
133
+ {icon && (
134
+ <View style={{ marginRight: IOListItemVisualParams.iconMargin }}>
135
+ <AnimatedIcon
136
+ name={icon}
137
+ color={mapForegroundColor[variant] as IOColors}
138
+ size={IOListItemVisualParams.iconSize}
139
+ />
140
+ </View>
141
+ )}
142
+ <View style={IOStyles.flex}>
143
+ <Text
144
+ style={[styles.label, { color: mapForegroundColor[variant] }]}
128
145
  >
129
- <Animated.View
130
- style={[IOListItemStyles.listItemInner, animatedScaleStyle]}
131
- >
132
- {icon && (
133
- <View style={{ marginRight: IOListItemVisualParams.iconMargin }}>
134
- <AnimatedIcon
135
- name={icon}
136
- color={mapForegroundColor[variant] as IOColors}
137
- size={IOListItemVisualParams.iconSize}
138
- />
139
- </View>
140
- )}
141
- <View style={IOStyles.flex}>
142
- <Text
143
- style={[styles.label, { color: mapForegroundColor[variant] }]}
144
- >
145
- {label}
146
- </Text>
147
- </View>
148
- </Animated.View>
149
- </Animated.View>
150
- </Pressable>
151
- );
146
+ {label}
147
+ </Text>
148
+ </View>
149
+ </Animated.View>
150
+ </Animated.View>
151
+ </Pressable>
152
+ );
152
153
  };
153
154
 
154
155
  export default ListItemAction;
@@ -1,149 +1,149 @@
1
1
  import * as React from "react";
2
2
  import { useCallback } from "react";
3
3
  import {
4
- GestureResponderEvent,
5
- Image,
6
- ImageSourcePropType,
7
- Platform,
8
- Pressable,
9
- StyleSheet,
10
- Text
4
+ GestureResponderEvent,
5
+ Image,
6
+ ImageSourcePropType,
7
+ Platform,
8
+ Pressable,
9
+ StyleSheet,
10
+ Text
11
11
  } from "react-native";
12
12
  import Animated, {
13
- Extrapolate,
14
- interpolate,
15
- useAnimatedStyle,
16
- useDerivedValue,
17
- useSharedValue,
18
- withSpring
13
+ Extrapolate,
14
+ interpolate,
15
+ useAnimatedStyle,
16
+ useDerivedValue,
17
+ useSharedValue,
18
+ withSpring
19
19
  } from "react-native-reanimated";
20
20
  import {
21
- IOColors,
22
- IOListItemIDPHSpacing,
23
- IOListItemIDPRadius,
24
- IOListItemIDPSavedVSpacing,
25
- IOListItemIDPVSpacing,
26
- IOListItemLogoMargin,
27
- IOScaleValues,
28
- IOSpringValues
21
+ IOColors,
22
+ IOListItemIDPHSpacing,
23
+ IOListItemIDPRadius,
24
+ IOListItemIDPSavedVSpacing,
25
+ IOListItemIDPVSpacing,
26
+ IOListItemLogoMargin,
27
+ IOScaleValues,
28
+ IOSpringValues
29
29
  } from "../../core";
30
30
  import { toAndroidCacheTimestamp } from "../../utils/dates";
31
31
  import { makeFontStyleObject } from "../../utils/fonts";
32
32
  import { WithTestID } from "../../utils/types";
33
33
 
34
34
  type ListItemIDP = WithTestID<{
35
- name: string;
36
- localLogo: ImageSourcePropType;
37
- logo: ImageSourcePropType;
38
- saved?: boolean;
39
- onPress: (event: GestureResponderEvent) => void;
40
- urlLogoIDP: string;
35
+ name: string;
36
+ localLogo: ImageSourcePropType;
37
+ logo: ImageSourcePropType;
38
+ saved?: boolean;
39
+ onPress: (event: GestureResponderEvent) => void;
40
+ urlLogoIDP: string;
41
41
  }>;
42
42
 
43
43
  const styles = StyleSheet.create({
44
- button: {
45
- borderWidth: 1,
46
- borderColor: IOColors["grey-100"],
47
- borderRadius: IOListItemIDPRadius,
48
- backgroundColor: IOColors.white,
49
- flexDirection: "row",
50
- justifyContent: "space-between",
51
- alignItems: "center",
52
- paddingVertical: IOListItemIDPVSpacing,
53
- paddingHorizontal: IOListItemIDPHSpacing
54
- },
55
- idpName: {
56
- color: IOColors["grey-700"],
57
- fontSize: 12,
58
- lineHeight: 16,
59
- alignSelf: "center",
60
- textTransform: "uppercase",
61
- flexShrink: 1,
62
- ...makeFontStyleObject("Regular", false, "ReadexPro")
63
- },
64
- idpLogo: {
65
- marginStart: IOListItemLogoMargin,
66
- width: 120,
67
- height: 30,
68
- resizeMode: "contain"
69
- }
44
+ button: {
45
+ borderWidth: 1,
46
+ borderColor: IOColors["grey-100"],
47
+ borderRadius: IOListItemIDPRadius,
48
+ backgroundColor: IOColors.white,
49
+ flexDirection: "row",
50
+ justifyContent: "space-between",
51
+ alignItems: "center",
52
+ paddingVertical: IOListItemIDPVSpacing,
53
+ paddingHorizontal: IOListItemIDPHSpacing
54
+ },
55
+ idpName: {
56
+ color: IOColors["grey-700"],
57
+ fontSize: 12,
58
+ lineHeight: 16,
59
+ alignSelf: "center",
60
+ textTransform: "uppercase",
61
+ flexShrink: 1,
62
+ ...makeFontStyleObject("Regular", false, "ReadexPro")
63
+ },
64
+ idpLogo: {
65
+ marginStart: IOListItemLogoMargin,
66
+ width: 120,
67
+ height: 30,
68
+ resizeMode: "contain"
69
+ }
70
70
  });
71
71
 
72
72
  // https://github.com/facebook/react-native/issues/12606
73
73
  // Image cache forced refresh for Android by appending
74
74
  // the `ts` query parameter as DDMMYYYY to simulate a 24h TTL.
75
75
  const androidIdpLogoForcedRefreshed = () =>
76
- Platform.OS === "android" ? `?ts=${toAndroidCacheTimestamp()}` : "";
76
+ Platform.OS === "android" ? `?ts=${toAndroidCacheTimestamp()}` : "";
77
77
 
78
78
  export const ListItemIDP = ({
79
- name,
80
- localLogo,
81
- logo,
82
- saved,
83
- onPress,
84
- testID,
79
+ name,
80
+ localLogo,
81
+ logo,
82
+ saved,
83
+ onPress,
84
+ testID
85
85
  }: ListItemIDP) => {
86
- const isPressed = useSharedValue(0);
86
+ const isPressed = useSharedValue(0);
87
87
 
88
- // Scaling transformation applied when the button is pressed
89
- const animationScaleValue = IOScaleValues?.magnifiedButton?.pressedState;
88
+ // Scaling transformation applied when the button is pressed
89
+ const animationScaleValue = IOScaleValues?.magnifiedButton?.pressedState;
90
90
 
91
- const scaleTraversed = useDerivedValue(() =>
92
- withSpring(isPressed.value, IOSpringValues.button)
93
- );
91
+ const scaleTraversed = useDerivedValue(() =>
92
+ withSpring(isPressed.value, IOSpringValues.button)
93
+ );
94
94
 
95
- // Interpolate animation values from `isPressed` values
96
- const animatedStyle = useAnimatedStyle(() => {
97
- const scale = interpolate(
98
- scaleTraversed.value,
99
- [0, 1],
100
- [1, animationScaleValue],
101
- Extrapolate.CLAMP
102
- );
95
+ // Interpolate animation values from `isPressed` values
96
+ const animatedStyle = useAnimatedStyle(() => {
97
+ const scale = interpolate(
98
+ scaleTraversed.value,
99
+ [0, 1],
100
+ [1, animationScaleValue],
101
+ Extrapolate.CLAMP
102
+ );
103
103
 
104
- return {
105
- transform: [{ scale }]
106
- };
107
- });
104
+ return {
105
+ transform: [{ scale }]
106
+ };
107
+ });
108
108
 
109
- const handlePressIn = useCallback(() => {
110
- // eslint-disable-next-line functional/immutable-data
111
- isPressed.value = 1;
112
- }, [isPressed]);
113
- const handlePressOut = useCallback(() => {
114
- // eslint-disable-next-line functional/immutable-data
115
- isPressed.value = 0;
116
- }, [isPressed]);
109
+ const handlePressIn = useCallback(() => {
110
+ // eslint-disable-next-line functional/immutable-data
111
+ isPressed.value = 1;
112
+ }, [isPressed]);
113
+ const handlePressOut = useCallback(() => {
114
+ // eslint-disable-next-line functional/immutable-data
115
+ isPressed.value = 0;
116
+ }, [isPressed]);
117
117
 
118
- // eslint-disable-next-line no-console
119
- const urlLogoIDP = localLogo
120
- ? localLogo
121
- : {
122
- uri: `${logo}${androidIdpLogoForcedRefreshed()}`
123
- };
124
- return (
125
- <Pressable
126
- onPress={onPress}
127
- onPressIn={handlePressIn}
128
- onPressOut={handlePressOut}
129
- onTouchEnd={handlePressOut}
130
- accessible={true}
131
- accessibilityRole={"button"}
132
- accessibilityLabel={name}
133
- testID={testID}
134
- >
135
- <Animated.View
136
- style={[
137
- styles.button,
138
- saved && { paddingVertical: IOListItemIDPSavedVSpacing },
139
- animatedStyle
140
- ]}
141
- >
142
- <Text style={styles.idpName}>{name}</Text>
143
- <Image source={urlLogoIDP} style={styles.idpLogo} />
144
- </Animated.View>
145
- </Pressable>
146
- );
118
+ // eslint-disable-next-line no-console
119
+ const urlLogoIDP = localLogo
120
+ ? localLogo
121
+ : {
122
+ uri: `${logo}${androidIdpLogoForcedRefreshed()}`
123
+ };
124
+ return (
125
+ <Pressable
126
+ onPress={onPress}
127
+ onPressIn={handlePressIn}
128
+ onPressOut={handlePressOut}
129
+ onTouchEnd={handlePressOut}
130
+ accessible={true}
131
+ accessibilityRole={"button"}
132
+ accessibilityLabel={name}
133
+ testID={testID}
134
+ >
135
+ <Animated.View
136
+ style={[
137
+ styles.button,
138
+ saved && { paddingVertical: IOListItemIDPSavedVSpacing },
139
+ animatedStyle
140
+ ]}
141
+ >
142
+ <Text style={styles.idpName}>{name}</Text>
143
+ <Image source={urlLogoIDP} style={styles.idpLogo} />
144
+ </Animated.View>
145
+ </Pressable>
146
+ );
147
147
  };
148
148
 
149
149
  export default ListItemIDP;