@pagopa/io-app-design-system 1.38.3 → 1.38.5

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.
@@ -37,11 +37,12 @@ const inputWithTimingConfig = {
37
37
  duration: inputTransitionDuration,
38
38
  easing: _reactNativeReanimated.Easing.inOut(_reactNativeReanimated.Easing.cubic)
39
39
  };
40
- const SearchInput = _ref => {
40
+ const SearchInput = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
41
41
  let {
42
42
  accessibilityLabel,
43
43
  cancelButtonLabel,
44
44
  clearAccessibilityLabel,
45
+ onCancel,
45
46
  onChangeText,
46
47
  placeholder,
47
48
  value = "",
@@ -61,7 +62,7 @@ const SearchInput = _ref => {
61
62
  /* Widths used for the transition:
62
63
  - `SearchInput` entire width
63
64
  - `Cancel` button */
64
- const inputWidth = (0, _react.useMemo)(() => _reactNative.Dimensions.get("window").width - _core.IOVisualCostants.appMarginDefault * 2, []);
65
+ const inputWidth = _reactNative.Dimensions.get("window").width - _core.IOVisualCostants.appMarginDefault * 2;
65
66
  const [cancelButtonWidth, setCancelButtonWidth] = (0, _react.useState)(0);
66
67
  const getCancelButtonWidth = _ref2 => {
67
68
  let {
@@ -69,7 +70,13 @@ const SearchInput = _ref => {
69
70
  } = _ref2;
70
71
  setCancelButtonWidth(nativeEvent.layout.width);
71
72
  };
72
- const inputWidthWithCancel = (0, _react.useMemo)(() => inputWidth - cancelButtonWidth, [inputWidth, cancelButtonWidth]);
73
+ const inputWidthWithCancel = inputWidth - cancelButtonWidth;
74
+ (0, _react.useImperativeHandle)(ref, () => ({
75
+ focus() {
76
+ var _searchInputRef$curre;
77
+ (_searchInputRef$curre = searchInputRef.current) === null || _searchInputRef$curre === void 0 || _searchInputRef$curre.focus();
78
+ }
79
+ }), []);
73
80
 
74
81
  /* Reanimated styles */
75
82
  const inputAnimatedWidth = (0, _reactNativeReanimated.useSharedValue)(inputWidth);
@@ -109,16 +116,14 @@ const SearchInput = _ref => {
109
116
  isFocused.value = (0, _reactNativeReanimated.withTiming)(0, inputWithTimingConfig);
110
117
  inputAnimatedWidth.value = inputWidth;
111
118
  };
112
- const cancel = (0, _react.useCallback)(() => {
113
- var _searchInputRef$curre, _searchInputRef$curre2;
119
+ const cancel = (0, _react.useCallback)(event => {
114
120
  onChangeText === null || onChangeText === void 0 || onChangeText("");
115
- (_searchInputRef$curre = searchInputRef.current) === null || _searchInputRef$curre === void 0 || _searchInputRef$curre.clear();
116
- (_searchInputRef$curre2 = searchInputRef.current) === null || _searchInputRef$curre2 === void 0 || _searchInputRef$curre2.blur();
117
- }, [onChangeText]);
121
+ onCancel === null || onCancel === void 0 || onCancel(event);
122
+ }, [onCancel, onChangeText]);
118
123
  const clear = (0, _react.useCallback)(() => {
119
- var _searchInputRef$curre3;
124
+ var _searchInputRef$curre2;
120
125
  onChangeText === null || onChangeText === void 0 || onChangeText("");
121
- (_searchInputRef$curre3 = searchInputRef.current) === null || _searchInputRef$curre3 === void 0 || _searchInputRef$curre3.clear();
126
+ (_searchInputRef$curre2 = searchInputRef.current) === null || _searchInputRef$curre2 === void 0 || _searchInputRef$curre2.clear();
122
127
  }, [onChangeText]);
123
128
  const handleChangeText = (0, _react.useCallback)(text => onChangeText === null || onChangeText === void 0 ? void 0 : onChangeText(text), [onChangeText]);
124
129
  const renderSearchBar = () => /*#__PURE__*/_react.default.createElement(_reactNativeReanimated.default.View, {
@@ -171,7 +176,7 @@ const SearchInput = _ref => {
171
176
  accessibilityLabel: placeholder,
172
177
  onPress: pressable === null || pressable === void 0 ? void 0 : pressable.onPress
173
178
  }, renderSearchBar()) : renderSearchBar();
174
- };
179
+ });
175
180
  exports.SearchInput = SearchInput;
176
181
  const styles = _reactNative.StyleSheet.create({
177
182
  searchBar: {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_core","_fonts","_buttons","_icons","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","inputPaddingHorizontal","inputPaddingClearButton","inputRadius","inputBgColorDefault","IOColors","inputBgColorFocused","inputColorPlaceholder","iconMargin","iconColor","iconSize","iconCloseSize","inputFontSizePlaceholder","cancelButtonMargin","inputTransitionDuration","inputHeightIOS","inputHeightAndroid","AnimatedTextInput","Animated","createAnimatedComponent","TextInput","AnimatedPressable","Pressable","inputWithTimingConfig","duration","easing","Easing","inOut","cubic","SearchInput","_ref","accessibilityLabel","cancelButtonLabel","clearAccessibilityLabel","onChangeText","placeholder","value","autoFocus","pressable","testID","searchInputRef","useRef","theme","useIOTheme","isExperimental","useIOExperimentalDesign","inputCaretColor","inputWidth","useMemo","Dimensions","width","IOVisualCostants","appMarginDefault","cancelButtonWidth","setCancelButtonWidth","useState","getCancelButtonWidth","_ref2","nativeEvent","layout","inputWidthWithCancel","inputAnimatedWidth","useSharedValue","isFocused","animatedStyle","useAnimatedStyle","withTiming","backgroundColor","interpolateColor","cancelButtonAnimatedStyle","transform","translateX","interpolate","Extrapolate","CLAMP","opacity","clearButtonAnimatedStyle","showClearButton","length","scale","handleFocus","handleBlur","cancel","useCallback","_searchInputRef$curre","_searchInputRef$curre2","current","clear","blur","_searchInputRef$curre3","handleChangeText","text","renderSearchBar","createElement","View","style","styles","searchBar","searchInput","pointerEvents","iconContainer","Icon","name","size","color","ref","inputMode","returnKeyType","accessibilityRole","textInput","Platform","OS","textInputIOS","textInputAndroid","placeholderLegacy","selectionColor","cursorColor","placeholderTextColor","onFocus","onBlur","clearButton","onPress","hitSlop","onLayout","cancelButton","ButtonLink","label","exports","StyleSheet","create","flexDirection","justifyContent","alignItems","flexShrink","borderRadius","borderCurve","paddingLeft","paddingRight","flexGrow","height","marginRight","fontSize","makeFontStyleObject","position","right","marginLeft"],"sourceRoot":"../../../../src","sources":["components/searchInput/SearchInput.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_core","_fonts","_buttons","_icons","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","inputPaddingHorizontal","inputPaddingClearButton","inputRadius","inputBgColorDefault","IOColors","inputBgColorFocused","inputColorPlaceholder","iconMargin","iconColor","iconSize","iconCloseSize","inputFontSizePlaceholder","cancelButtonMargin","inputTransitionDuration","inputHeightIOS","inputHeightAndroid","AnimatedTextInput","Animated","createAnimatedComponent","TextInput","AnimatedPressable","Pressable","inputWithTimingConfig","duration","easing","Easing","inOut","cubic","SearchInput","forwardRef","_ref","ref","accessibilityLabel","cancelButtonLabel","clearAccessibilityLabel","onCancel","onChangeText","placeholder","value","autoFocus","pressable","testID","searchInputRef","useRef","theme","useIOTheme","isExperimental","useIOExperimentalDesign","inputCaretColor","inputWidth","Dimensions","width","IOVisualCostants","appMarginDefault","cancelButtonWidth","setCancelButtonWidth","useState","getCancelButtonWidth","_ref2","nativeEvent","layout","inputWidthWithCancel","useImperativeHandle","focus","_searchInputRef$curre","current","inputAnimatedWidth","useSharedValue","isFocused","animatedStyle","useAnimatedStyle","withTiming","backgroundColor","interpolateColor","cancelButtonAnimatedStyle","transform","translateX","interpolate","Extrapolate","CLAMP","opacity","clearButtonAnimatedStyle","showClearButton","length","scale","handleFocus","handleBlur","cancel","useCallback","event","clear","_searchInputRef$curre2","handleChangeText","text","renderSearchBar","createElement","View","style","styles","searchBar","searchInput","pointerEvents","iconContainer","Icon","name","size","color","inputMode","returnKeyType","accessibilityRole","textInput","Platform","OS","textInputIOS","textInputAndroid","placeholderLegacy","selectionColor","cursorColor","placeholderTextColor","onFocus","onBlur","clearButton","onPress","hitSlop","onLayout","cancelButton","ButtonLink","label","exports","StyleSheet","create","flexDirection","justifyContent","alignItems","flexShrink","borderRadius","borderCurve","paddingLeft","paddingRight","flexGrow","height","marginRight","fontSize","makeFontStyleObject","position","right","marginLeft"],"sourceRoot":"../../../../src","sources":["components/searchInput/SearchInput.tsx"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable functional/immutable-data */
2
- import React, { useCallback, useMemo, useRef, useState } from "react";
2
+ import React, { forwardRef, useCallback, useImperativeHandle, useRef, useState } from "react";
3
3
  import { Dimensions, Platform, Pressable, StyleSheet, TextInput, View } from "react-native";
4
4
  import Animated, { Easing, Extrapolate, interpolate, interpolateColor, useAnimatedStyle, useSharedValue, withTiming } from "react-native-reanimated";
5
5
  import { IOColors, IOVisualCostants, useIOExperimentalDesign, useIOTheme } from "../../core";
@@ -29,11 +29,12 @@ const inputWithTimingConfig = {
29
29
  duration: inputTransitionDuration,
30
30
  easing: Easing.inOut(Easing.cubic)
31
31
  };
32
- export const SearchInput = _ref => {
32
+ export const SearchInput = /*#__PURE__*/forwardRef((_ref, ref) => {
33
33
  let {
34
34
  accessibilityLabel,
35
35
  cancelButtonLabel,
36
36
  clearAccessibilityLabel,
37
+ onCancel,
37
38
  onChangeText,
38
39
  placeholder,
39
40
  value = "",
@@ -53,7 +54,7 @@ export const SearchInput = _ref => {
53
54
  /* Widths used for the transition:
54
55
  - `SearchInput` entire width
55
56
  - `Cancel` button */
56
- const inputWidth = useMemo(() => Dimensions.get("window").width - IOVisualCostants.appMarginDefault * 2, []);
57
+ const inputWidth = Dimensions.get("window").width - IOVisualCostants.appMarginDefault * 2;
57
58
  const [cancelButtonWidth, setCancelButtonWidth] = useState(0);
58
59
  const getCancelButtonWidth = _ref2 => {
59
60
  let {
@@ -61,7 +62,13 @@ export const SearchInput = _ref => {
61
62
  } = _ref2;
62
63
  setCancelButtonWidth(nativeEvent.layout.width);
63
64
  };
64
- const inputWidthWithCancel = useMemo(() => inputWidth - cancelButtonWidth, [inputWidth, cancelButtonWidth]);
65
+ const inputWidthWithCancel = inputWidth - cancelButtonWidth;
66
+ useImperativeHandle(ref, () => ({
67
+ focus() {
68
+ var _searchInputRef$curre;
69
+ (_searchInputRef$curre = searchInputRef.current) === null || _searchInputRef$curre === void 0 || _searchInputRef$curre.focus();
70
+ }
71
+ }), []);
65
72
 
66
73
  /* Reanimated styles */
67
74
  const inputAnimatedWidth = useSharedValue(inputWidth);
@@ -101,16 +108,14 @@ export const SearchInput = _ref => {
101
108
  isFocused.value = withTiming(0, inputWithTimingConfig);
102
109
  inputAnimatedWidth.value = inputWidth;
103
110
  };
104
- const cancel = useCallback(() => {
105
- var _searchInputRef$curre, _searchInputRef$curre2;
111
+ const cancel = useCallback(event => {
106
112
  onChangeText === null || onChangeText === void 0 || onChangeText("");
107
- (_searchInputRef$curre = searchInputRef.current) === null || _searchInputRef$curre === void 0 || _searchInputRef$curre.clear();
108
- (_searchInputRef$curre2 = searchInputRef.current) === null || _searchInputRef$curre2 === void 0 || _searchInputRef$curre2.blur();
109
- }, [onChangeText]);
113
+ onCancel === null || onCancel === void 0 || onCancel(event);
114
+ }, [onCancel, onChangeText]);
110
115
  const clear = useCallback(() => {
111
- var _searchInputRef$curre3;
116
+ var _searchInputRef$curre2;
112
117
  onChangeText === null || onChangeText === void 0 || onChangeText("");
113
- (_searchInputRef$curre3 = searchInputRef.current) === null || _searchInputRef$curre3 === void 0 || _searchInputRef$curre3.clear();
118
+ (_searchInputRef$curre2 = searchInputRef.current) === null || _searchInputRef$curre2 === void 0 || _searchInputRef$curre2.clear();
114
119
  }, [onChangeText]);
115
120
  const handleChangeText = useCallback(text => onChangeText === null || onChangeText === void 0 ? void 0 : onChangeText(text), [onChangeText]);
116
121
  const renderSearchBar = () => /*#__PURE__*/React.createElement(Animated.View, {
@@ -163,7 +168,7 @@ export const SearchInput = _ref => {
163
168
  accessibilityLabel: placeholder,
164
169
  onPress: pressable === null || pressable === void 0 ? void 0 : pressable.onPress
165
170
  }, renderSearchBar()) : renderSearchBar();
166
- };
171
+ });
167
172
  const styles = StyleSheet.create({
168
173
  searchBar: {
169
174
  width: "100%",
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useMemo","useRef","useState","Dimensions","Platform","Pressable","StyleSheet","TextInput","View","Animated","Easing","Extrapolate","interpolate","interpolateColor","useAnimatedStyle","useSharedValue","withTiming","IOColors","IOVisualCostants","useIOExperimentalDesign","useIOTheme","makeFontStyleObject","ButtonLink","Icon","inputPaddingHorizontal","inputPaddingClearButton","inputRadius","inputBgColorDefault","inputBgColorFocused","inputColorPlaceholder","iconMargin","iconColor","iconSize","iconCloseSize","inputFontSizePlaceholder","cancelButtonMargin","inputTransitionDuration","inputHeightIOS","inputHeightAndroid","AnimatedTextInput","createAnimatedComponent","AnimatedPressable","inputWithTimingConfig","duration","easing","inOut","cubic","SearchInput","_ref","accessibilityLabel","cancelButtonLabel","clearAccessibilityLabel","onChangeText","placeholder","value","autoFocus","pressable","testID","searchInputRef","theme","isExperimental","inputCaretColor","inputWidth","get","width","appMarginDefault","cancelButtonWidth","setCancelButtonWidth","getCancelButtonWidth","_ref2","nativeEvent","layout","inputWidthWithCancel","inputAnimatedWidth","isFocused","animatedStyle","backgroundColor","cancelButtonAnimatedStyle","transform","translateX","CLAMP","opacity","clearButtonAnimatedStyle","showClearButton","length","scale","handleFocus","handleBlur","cancel","_searchInputRef$curre","_searchInputRef$curre2","current","clear","blur","_searchInputRef$curre3","handleChangeText","text","renderSearchBar","createElement","style","styles","searchBar","searchInput","pointerEvents","iconContainer","name","size","color","ref","inputMode","returnKeyType","accessibilityRole","textInput","OS","textInputIOS","textInputAndroid","placeholderLegacy","selectionColor","cursorColor","placeholderTextColor","onFocus","onBlur","clearButton","onPress","hitSlop","onLayout","cancelButton","label","create","flexDirection","justifyContent","alignItems","flexShrink","borderRadius","borderCurve","paddingLeft","paddingRight","flexGrow","height","marginRight","fontSize","position","right","marginLeft"],"sourceRoot":"../../../../src","sources":["components/searchInput/SearchInput.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["React","forwardRef","useCallback","useImperativeHandle","useRef","useState","Dimensions","Platform","Pressable","StyleSheet","TextInput","View","Animated","Easing","Extrapolate","interpolate","interpolateColor","useAnimatedStyle","useSharedValue","withTiming","IOColors","IOVisualCostants","useIOExperimentalDesign","useIOTheme","makeFontStyleObject","ButtonLink","Icon","inputPaddingHorizontal","inputPaddingClearButton","inputRadius","inputBgColorDefault","inputBgColorFocused","inputColorPlaceholder","iconMargin","iconColor","iconSize","iconCloseSize","inputFontSizePlaceholder","cancelButtonMargin","inputTransitionDuration","inputHeightIOS","inputHeightAndroid","AnimatedTextInput","createAnimatedComponent","AnimatedPressable","inputWithTimingConfig","duration","easing","inOut","cubic","SearchInput","_ref","ref","accessibilityLabel","cancelButtonLabel","clearAccessibilityLabel","onCancel","onChangeText","placeholder","value","autoFocus","pressable","testID","searchInputRef","theme","isExperimental","inputCaretColor","inputWidth","get","width","appMarginDefault","cancelButtonWidth","setCancelButtonWidth","getCancelButtonWidth","_ref2","nativeEvent","layout","inputWidthWithCancel","focus","_searchInputRef$curre","current","inputAnimatedWidth","isFocused","animatedStyle","backgroundColor","cancelButtonAnimatedStyle","transform","translateX","CLAMP","opacity","clearButtonAnimatedStyle","showClearButton","length","scale","handleFocus","handleBlur","cancel","event","clear","_searchInputRef$curre2","handleChangeText","text","renderSearchBar","createElement","style","styles","searchBar","searchInput","pointerEvents","iconContainer","name","size","color","inputMode","returnKeyType","accessibilityRole","textInput","OS","textInputIOS","textInputAndroid","placeholderLegacy","selectionColor","cursorColor","placeholderTextColor","onFocus","onBlur","clearButton","onPress","hitSlop","onLayout","cancelButton","label","create","flexDirection","justifyContent","alignItems","flexShrink","borderRadius","borderCurve","paddingLeft","paddingRight","flexGrow","height","marginRight","fontSize","position","right","marginLeft"],"sourceRoot":"../../../../src","sources":["components/searchInput/SearchInput.tsx"],"mappings":"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"}
@@ -6,10 +6,12 @@ type SearchInputPressableProps = {
6
6
  };
7
7
  type SearchInputActionProps = {
8
8
  pressable: SearchInputPressableProps;
9
+ onCancel?: never;
9
10
  onChangeText?: never;
10
11
  value?: never;
11
12
  } | {
12
13
  pressable?: never;
14
+ onCancel: (event: GestureResponderEvent) => void;
13
15
  onChangeText: (value: string) => void;
14
16
  value: string;
15
17
  };
@@ -20,6 +22,9 @@ type SearchInputProps = WithTestID<{
20
22
  placeholder: TextInputProps["placeholder"];
21
23
  autoFocus?: TextInputProps["autoFocus"];
22
24
  }> & SearchInputActionProps;
23
- export declare const SearchInput: ({ accessibilityLabel, cancelButtonLabel, clearAccessibilityLabel, onChangeText, placeholder, value, autoFocus, pressable, testID }: SearchInputProps) => React.JSX.Element;
25
+ export type SearchInputRef = {
26
+ focus: () => void;
27
+ };
28
+ export declare const SearchInput: React.ForwardRefExoticComponent<SearchInputProps & React.RefAttributes<SearchInputRef>>;
24
29
  export {};
25
30
  //# sourceMappingURL=SearchInput.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SearchInput.d.ts","sourceRoot":"","sources":["../../../../src/components/searchInput/SearchInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAiD,MAAM,OAAO,CAAC;AACtE,OAAO,EAGL,qBAAqB,EAOrB,cAAc,EAEf,MAAM,cAAc,CAAC;AAUtB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA6B7C,KAAK,yBAAyB,GAAG;IAC/B,OAAO,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACjD,CAAC;AAEF,KAAK,sBAAsB,GACvB;IACE,SAAS,EAAE,yBAAyB,CAAC;IACrC,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,GACD;IACE,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEN,KAAK,gBAAgB,GAAG,UAAU,CAAC;IACjC,kBAAkB,EAAE,cAAc,CAAC,oBAAoB,CAAC,CAAC;IACzD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC;IAChC,WAAW,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;CACzC,CAAC,GACA,sBAAsB,CAAC;AAUzB,eAAO,MAAM,WAAW,uIAUrB,gBAAgB,sBAoKlB,CAAC"}
1
+ {"version":3,"file":"SearchInput.d.ts","sourceRoot":"","sources":["../../../../src/components/searchInput/SearchInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAMN,MAAM,OAAO,CAAC;AACf,OAAO,EAGL,qBAAqB,EAOrB,cAAc,EAEf,MAAM,cAAc,CAAC;AAUtB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA6B7C,KAAK,yBAAyB,GAAG;IAC/B,OAAO,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACjD,CAAC;AAEF,KAAK,sBAAsB,GACvB;IACE,SAAS,EAAE,yBAAyB,CAAC;IACrC,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,GACD;IACE,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACjD,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEN,KAAK,gBAAgB,GAAG,UAAU,CAAC;IACjC,kBAAkB,EAAE,cAAc,CAAC,oBAAoB,CAAC,CAAC;IACzD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC;IAChC,WAAW,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;CACzC,CAAC,GACA,sBAAsB,CAAC;AAEzB,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAUF,eAAO,MAAM,WAAW,yFA0LvB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pagopa/io-app-design-system",
3
- "version": "1.38.3",
3
+ "version": "1.38.5",
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,5 +1,11 @@
1
1
  /* eslint-disable functional/immutable-data */
2
- import React, { useCallback, useMemo, useRef, useState } from "react";
2
+ import React, {
3
+ forwardRef,
4
+ useCallback,
5
+ useImperativeHandle,
6
+ useRef,
7
+ useState
8
+ } from "react";
3
9
  import {
4
10
  ColorValue,
5
11
  Dimensions,
@@ -58,11 +64,13 @@ type SearchInputPressableProps = {
58
64
  type SearchInputActionProps =
59
65
  | {
60
66
  pressable: SearchInputPressableProps;
67
+ onCancel?: never;
61
68
  onChangeText?: never;
62
69
  value?: never;
63
70
  }
64
71
  | {
65
72
  pressable?: never;
73
+ onCancel: (event: GestureResponderEvent) => void;
66
74
  onChangeText: (value: string) => void;
67
75
  value: string;
68
76
  };
@@ -76,6 +84,10 @@ type SearchInputProps = WithTestID<{
76
84
  }> &
77
85
  SearchInputActionProps;
78
86
 
87
+ export type SearchInputRef = {
88
+ focus: () => void;
89
+ };
90
+
79
91
  const AnimatedTextInput = Animated.createAnimatedComponent(TextInput);
80
92
  const AnimatedPressable = Animated.createAnimatedComponent(Pressable);
81
93
 
@@ -84,181 +96,193 @@ const inputWithTimingConfig = {
84
96
  easing: Easing.inOut(Easing.cubic)
85
97
  };
86
98
 
87
- export const SearchInput = ({
88
- accessibilityLabel,
89
- cancelButtonLabel,
90
- clearAccessibilityLabel,
91
- onChangeText,
92
- placeholder,
93
- value = "",
94
- autoFocus,
95
- pressable,
96
- testID
97
- }: SearchInputProps) => {
98
- const searchInputRef = useRef<TextInput>(null);
99
-
100
- /* Component visual attributes */
101
- const theme = useIOTheme();
102
- const { isExperimental } = useIOExperimentalDesign();
103
- const inputCaretColor = IOColors[theme["interactiveElem-default"]];
99
+ export const SearchInput = forwardRef<SearchInputRef, SearchInputProps>(
100
+ (
101
+ {
102
+ accessibilityLabel,
103
+ cancelButtonLabel,
104
+ clearAccessibilityLabel,
105
+ onCancel,
106
+ onChangeText,
107
+ placeholder,
108
+ value = "",
109
+ autoFocus,
110
+ pressable,
111
+ testID
112
+ },
113
+ ref
114
+ ) => {
115
+ const searchInputRef = useRef<TextInput>(null);
104
116
 
105
- /* Widths used for the transition:
106
- - `SearchInput` entire width
107
- - `Cancel` button */
108
- const inputWidth: number = useMemo(
109
- () =>
110
- Dimensions.get("window").width - IOVisualCostants.appMarginDefault * 2,
111
- []
112
- );
117
+ /* Component visual attributes */
118
+ const theme = useIOTheme();
119
+ const { isExperimental } = useIOExperimentalDesign();
120
+ const inputCaretColor = IOColors[theme["interactiveElem-default"]];
113
121
 
114
- const [cancelButtonWidth, setCancelButtonWidth] =
115
- useState<LayoutRectangle["width"]>(0);
122
+ /* Widths used for the transition:
123
+ - `SearchInput` entire width
124
+ - `Cancel` button */
125
+ const inputWidth: number =
126
+ Dimensions.get("window").width - IOVisualCostants.appMarginDefault * 2;
116
127
 
117
- const getCancelButtonWidth = ({ nativeEvent }: LayoutChangeEvent) => {
118
- setCancelButtonWidth(nativeEvent.layout.width);
119
- };
128
+ const [cancelButtonWidth, setCancelButtonWidth] =
129
+ useState<LayoutRectangle["width"]>(0);
120
130
 
121
- const inputWidthWithCancel: number = useMemo(
122
- () => inputWidth - cancelButtonWidth,
123
- [inputWidth, cancelButtonWidth]
124
- );
131
+ const getCancelButtonWidth = ({ nativeEvent }: LayoutChangeEvent) => {
132
+ setCancelButtonWidth(nativeEvent.layout.width);
133
+ };
125
134
 
126
- /* Reanimated styles */
127
- const inputAnimatedWidth = useSharedValue<number>(inputWidth);
128
- const isFocused = useSharedValue(0);
135
+ const inputWidthWithCancel: number = inputWidth - cancelButtonWidth;
129
136
 
130
- /* Applied to the `SearchInput` */
131
- const animatedStyle = useAnimatedStyle(() => ({
132
- width: withTiming(inputAnimatedWidth.value, inputWithTimingConfig),
133
- backgroundColor: interpolateColor(
134
- isFocused.value,
135
- [0, 1],
136
- [inputBgColorDefault, inputBgColorFocused]
137
- )
138
- }));
137
+ useImperativeHandle(
138
+ ref,
139
+ () => ({
140
+ focus() {
141
+ searchInputRef.current?.focus();
142
+ }
143
+ }),
144
+ []
145
+ );
139
146
 
140
- /* Applied to the `Cancel` button */
141
- const cancelButtonAnimatedStyle = useAnimatedStyle(() => ({
142
- transform: [
143
- {
144
- translateX: interpolate(
145
- isFocused.value,
146
- [0, 1],
147
- [cancelButtonWidth + IOVisualCostants.appMarginDefault, 0],
148
- Extrapolate.CLAMP
149
- )
150
- }
151
- ],
152
- opacity: interpolate(isFocused.value, [0, 1], [0.5, 1])
153
- }));
147
+ /* Reanimated styles */
148
+ const inputAnimatedWidth = useSharedValue<number>(inputWidth);
149
+ const isFocused = useSharedValue(0);
154
150
 
155
- /* Applied to the `Clear` button inside the `SearchInput` */
156
- const clearButtonAnimatedStyle = useAnimatedStyle(() => {
157
- const showClearButton = value.length > 0;
151
+ /* Applied to the `SearchInput` */
152
+ const animatedStyle = useAnimatedStyle(() => ({
153
+ width: withTiming(inputAnimatedWidth.value, inputWithTimingConfig),
154
+ backgroundColor: interpolateColor(
155
+ isFocused.value,
156
+ [0, 1],
157
+ [inputBgColorDefault, inputBgColorFocused]
158
+ )
159
+ }));
158
160
 
159
- return {
161
+ /* Applied to the `Cancel` button */
162
+ const cancelButtonAnimatedStyle = useAnimatedStyle(() => ({
160
163
  transform: [
161
164
  {
162
- scale: showClearButton
163
- ? withTiming(1, inputWithTimingConfig)
164
- : withTiming(0.5, inputWithTimingConfig)
165
+ translateX: interpolate(
166
+ isFocused.value,
167
+ [0, 1],
168
+ [cancelButtonWidth + IOVisualCostants.appMarginDefault, 0],
169
+ Extrapolate.CLAMP
170
+ )
165
171
  }
166
172
  ],
167
- opacity: withTiming(showClearButton ? 1 : 0, inputWithTimingConfig)
168
- };
169
- }, [value]);
173
+ opacity: interpolate(isFocused.value, [0, 1], [0.5, 1])
174
+ }));
170
175
 
171
- /* Related event handlers */
172
- const handleFocus = () => {
173
- isFocused.value = withTiming(1, inputWithTimingConfig);
174
- inputAnimatedWidth.value = inputWidthWithCancel;
175
- };
176
+ /* Applied to the `Clear` button inside the `SearchInput` */
177
+ const clearButtonAnimatedStyle = useAnimatedStyle(() => {
178
+ const showClearButton = value.length > 0;
176
179
 
177
- const handleBlur = () => {
178
- isFocused.value = withTiming(0, inputWithTimingConfig);
179
- inputAnimatedWidth.value = inputWidth;
180
- };
180
+ return {
181
+ transform: [
182
+ {
183
+ scale: showClearButton
184
+ ? withTiming(1, inputWithTimingConfig)
185
+ : withTiming(0.5, inputWithTimingConfig)
186
+ }
187
+ ],
188
+ opacity: withTiming(showClearButton ? 1 : 0, inputWithTimingConfig)
189
+ };
190
+ }, [value]);
181
191
 
182
- const cancel = useCallback(() => {
183
- onChangeText?.("");
184
- searchInputRef.current?.clear();
185
- searchInputRef.current?.blur();
186
- }, [onChangeText]);
192
+ /* Related event handlers */
193
+ const handleFocus = () => {
194
+ isFocused.value = withTiming(1, inputWithTimingConfig);
195
+ inputAnimatedWidth.value = inputWidthWithCancel;
196
+ };
187
197
 
188
- const clear = useCallback(() => {
189
- onChangeText?.("");
190
- searchInputRef.current?.clear();
191
- }, [onChangeText]);
198
+ const handleBlur = () => {
199
+ isFocused.value = withTiming(0, inputWithTimingConfig);
200
+ inputAnimatedWidth.value = inputWidth;
201
+ };
192
202
 
193
- const handleChangeText = useCallback(
194
- (text: string) => onChangeText?.(text),
195
- [onChangeText]
196
- );
203
+ const cancel = useCallback(
204
+ (event: GestureResponderEvent) => {
205
+ onChangeText?.("");
206
+ onCancel?.(event);
207
+ },
208
+ [onCancel, onChangeText]
209
+ );
197
210
 
198
- const renderSearchBar = () => (
199
- <Animated.View style={styles.searchBar}>
200
- <Animated.View
201
- style={[styles.searchInput, animatedStyle]}
202
- pointerEvents={pressable ? "none" : "auto"}
203
- >
204
- <View style={styles.iconContainer}>
205
- <Icon name="search" size={iconSize} color={iconColor} />
206
- </View>
207
- <AnimatedTextInput
208
- testID={testID}
209
- ref={searchInputRef}
210
- inputMode="search"
211
- returnKeyType="search"
212
- accessibilityRole={"search"}
213
- accessibilityLabel={accessibilityLabel}
214
- style={[
215
- styles.textInput,
216
- Platform.OS === "ios"
217
- ? styles.textInputIOS
218
- : styles.textInputAndroid,
219
- isExperimental ? styles.placeholder : styles.placeholderLegacy
220
- ]}
221
- selectionColor={inputCaretColor}
222
- cursorColor={inputCaretColor}
223
- placeholder={placeholder}
224
- placeholderTextColor={inputColorPlaceholder}
225
- onFocus={handleFocus}
226
- onBlur={handleBlur}
227
- onChangeText={handleChangeText}
228
- value={value}
229
- autoFocus={autoFocus}
230
- />
231
- <AnimatedPressable
232
- style={[styles.clearButton, clearButtonAnimatedStyle]}
233
- onPress={clear}
234
- accessibilityLabel={clearAccessibilityLabel}
235
- accessibilityRole="button"
236
- hitSlop={16}
211
+ const clear = useCallback(() => {
212
+ onChangeText?.("");
213
+ searchInputRef.current?.clear();
214
+ }, [onChangeText]);
215
+
216
+ const handleChangeText = useCallback(
217
+ (text: string) => onChangeText?.(text),
218
+ [onChangeText]
219
+ );
220
+
221
+ const renderSearchBar = () => (
222
+ <Animated.View style={styles.searchBar}>
223
+ <Animated.View
224
+ style={[styles.searchInput, animatedStyle]}
225
+ pointerEvents={pressable ? "none" : "auto"}
237
226
  >
238
- <Icon name="closeSmall" size={iconCloseSize} color={iconColor} />
239
- </AnimatedPressable>
240
- </Animated.View>
241
- <Animated.View
242
- onLayout={getCancelButtonWidth}
243
- style={[styles.cancelButton, cancelButtonAnimatedStyle]}
244
- >
245
- <ButtonLink label={cancelButtonLabel} onPress={cancel} />
227
+ <View style={styles.iconContainer}>
228
+ <Icon name="search" size={iconSize} color={iconColor} />
229
+ </View>
230
+ <AnimatedTextInput
231
+ testID={testID}
232
+ ref={searchInputRef}
233
+ inputMode="search"
234
+ returnKeyType="search"
235
+ accessibilityRole={"search"}
236
+ accessibilityLabel={accessibilityLabel}
237
+ style={[
238
+ styles.textInput,
239
+ Platform.OS === "ios"
240
+ ? styles.textInputIOS
241
+ : styles.textInputAndroid,
242
+ isExperimental ? styles.placeholder : styles.placeholderLegacy
243
+ ]}
244
+ selectionColor={inputCaretColor}
245
+ cursorColor={inputCaretColor}
246
+ placeholder={placeholder}
247
+ placeholderTextColor={inputColorPlaceholder}
248
+ onFocus={handleFocus}
249
+ onBlur={handleBlur}
250
+ onChangeText={handleChangeText}
251
+ value={value}
252
+ autoFocus={autoFocus}
253
+ />
254
+ <AnimatedPressable
255
+ style={[styles.clearButton, clearButtonAnimatedStyle]}
256
+ onPress={clear}
257
+ accessibilityLabel={clearAccessibilityLabel}
258
+ accessibilityRole="button"
259
+ hitSlop={16}
260
+ >
261
+ <Icon name="closeSmall" size={iconCloseSize} color={iconColor} />
262
+ </AnimatedPressable>
263
+ </Animated.View>
264
+ <Animated.View
265
+ onLayout={getCancelButtonWidth}
266
+ style={[styles.cancelButton, cancelButtonAnimatedStyle]}
267
+ >
268
+ <ButtonLink label={cancelButtonLabel} onPress={cancel} />
269
+ </Animated.View>
246
270
  </Animated.View>
247
- </Animated.View>
248
- );
271
+ );
249
272
 
250
- return pressable ? (
251
- <Pressable
252
- accessibilityRole="button"
253
- accessibilityLabel={placeholder}
254
- onPress={pressable?.onPress}
255
- >
256
- {renderSearchBar()}
257
- </Pressable>
258
- ) : (
259
- renderSearchBar()
260
- );
261
- };
273
+ return pressable ? (
274
+ <Pressable
275
+ accessibilityRole="button"
276
+ accessibilityLabel={placeholder}
277
+ onPress={pressable?.onPress}
278
+ >
279
+ {renderSearchBar()}
280
+ </Pressable>
281
+ ) : (
282
+ renderSearchBar()
283
+ );
284
+ }
285
+ );
262
286
 
263
287
  const styles = StyleSheet.create({
264
288
  searchBar: {