@axelor/aos-mobile-ui 6.5.0 → 6.5.2

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 (56) hide show
  1. package/lib/components/atoms/HtmlInput/HtmlInput.d.ts +3 -1
  2. package/lib/components/atoms/HtmlInput/HtmlInput.js +8 -4
  3. package/lib/components/atoms/HtmlInput/HtmlInput.js.map +1 -1
  4. package/lib/components/molecules/DropdownMenu/DropdownMenu.js +7 -5
  5. package/lib/components/molecules/DropdownMenu/DropdownMenu.js.map +1 -1
  6. package/lib/components/molecules/FormHtmlInput/FormHtmlInput.js +14 -3
  7. package/lib/components/molecules/FormHtmlInput/FormHtmlInput.js.map +1 -1
  8. package/lib/components/molecules/FormIncrementInput/FormIncrementInput.js +9 -1
  9. package/lib/components/molecules/FormIncrementInput/FormIncrementInput.js.map +1 -1
  10. package/lib/components/molecules/FormInput/FormInput.js +17 -4
  11. package/lib/components/molecules/FormInput/FormInput.js.map +1 -1
  12. package/lib/components/molecules/IconInput/IconInput.d.ts +2 -1
  13. package/lib/components/molecules/IconInput/IconInput.js +18 -5
  14. package/lib/components/molecules/IconInput/IconInput.js.map +1 -1
  15. package/lib/components/molecules/Increment/Increment.d.ts +3 -1
  16. package/lib/components/molecules/Increment/Increment.js +10 -6
  17. package/lib/components/molecules/Increment/Increment.js.map +1 -1
  18. package/lib/components/molecules/WarningCard/WarningCard.d.ts +6 -0
  19. package/lib/components/molecules/WarningCard/WarningCard.js +55 -0
  20. package/lib/components/molecules/WarningCard/WarningCard.js.map +1 -0
  21. package/lib/components/molecules/index.d.ts +1 -1
  22. package/lib/components/molecules/index.js +1 -1
  23. package/lib/components/molecules/index.js.map +1 -1
  24. package/lib/components/organisms/AutoCompleteSearch/AutoCompleteSearch.js +52 -51
  25. package/lib/components/organisms/AutoCompleteSearch/AutoCompleteSearch.js.map +1 -1
  26. package/lib/components/organisms/DropdownMenuItem/DropdownMenuItem.d.ts +11 -0
  27. package/lib/components/organisms/DropdownMenuItem/DropdownMenuItem.js +68 -0
  28. package/lib/components/organisms/DropdownMenuItem/DropdownMenuItem.js.map +1 -0
  29. package/lib/components/organisms/MultiValuePicker/MultiValuePicker.d.ts +2 -3
  30. package/lib/components/organisms/MultiValuePicker/MultiValuePicker.js +10 -8
  31. package/lib/components/organisms/MultiValuePicker/MultiValuePicker.js.map +1 -1
  32. package/lib/components/organisms/Picker/Picker.js +8 -2
  33. package/lib/components/organisms/Picker/Picker.js.map +1 -1
  34. package/lib/components/organisms/ProgressBar/ProgressBar.d.ts +18 -0
  35. package/lib/components/organisms/ProgressBar/ProgressBar.js +164 -0
  36. package/lib/components/organisms/ProgressBar/ProgressBar.js.map +1 -0
  37. package/lib/components/organisms/ScrollList/ScrollList.js +18 -8
  38. package/lib/components/organisms/ScrollList/ScrollList.js.map +1 -1
  39. package/lib/components/organisms/SearchBar/SearchBar.d.ts +2 -1
  40. package/lib/components/organisms/SearchBar/SearchBar.js +2 -2
  41. package/lib/components/organisms/SearchBar/SearchBar.js.map +1 -1
  42. package/lib/components/organisms/index.d.ts +2 -0
  43. package/lib/components/organisms/index.js +2 -0
  44. package/lib/components/organisms/index.js.map +1 -1
  45. package/lib/utils/commons-styles.d.ts +13 -1
  46. package/lib/utils/commons-styles.js +13 -1
  47. package/lib/utils/commons-styles.js.map +1 -1
  48. package/lib/utils/commons-utlis.d.ts +1 -0
  49. package/lib/utils/commons-utlis.js +24 -0
  50. package/lib/utils/commons-utlis.js.map +1 -0
  51. package/lib/utils/strings.js +1 -1
  52. package/lib/utils/strings.js.map +1 -1
  53. package/package.json +1 -1
  54. package/lib/components/molecules/DropdownMenuItem/DropdownMenuItem.d.ts +0 -7
  55. package/lib/components/molecules/DropdownMenuItem/DropdownMenuItem.js +0 -42
  56. package/lib/components/molecules/DropdownMenuItem/DropdownMenuItem.js.map +0 -1
@@ -20,21 +20,28 @@ import { View } from 'react-native';
20
20
  import { useClickOutside, OUTSIDE_INDICATOR, } from '../../../hooks/use-click-outside';
21
21
  import { SelectionContainer } from '../../molecules';
22
22
  import { SearchBar } from '../../organisms';
23
- const TIME_WITHOUT_INPUT = 1000;
23
+ const isValidString = (string) => {
24
+ return typeof string === 'string' && string !== '';
25
+ };
26
+ const TIME_WITHOUT_INPUT = 2000;
24
27
  const TIME_BETWEEN_CALL = 1000;
25
- const AutoCompleteSearch = ({ objectList, value = null, onChangeValue, fetchData = () => { }, displayValue, placeholder, isFocus = false, changeScreenAfter = false, navigate = false, oneFilter = false, onSelection, onScanPress, scanIconColor = null, selectLastItem = true, style, }) => {
28
+ const AutoCompleteSearch = ({ objectList, value = null, onChangeValue, fetchData = () => { }, displayValue, placeholder, isFocus = false, changeScreenAfter = false, navigate = false, oneFilter = false, onSelection = () => { }, onScanPress, scanIconColor = null, selectLastItem = true, style, }) => {
26
29
  const [displayList, setDisplayList] = useState(false);
30
+ const [previousState, setPreviousState] = useState(null);
31
+ const [selected, setSelected] = useState(value ? true : false);
32
+ const [searchText, setSearchText] = useState(value ? displayValue(value) : null);
33
+ let timeOutRequestCall = useRef();
34
+ let intervalRequestCall = useRef();
27
35
  const wrapperRef = useRef(null);
28
36
  const clickOutside = useClickOutside({
29
37
  wrapperRef,
30
38
  visible: displayList,
31
39
  });
32
- const [searchText, setSearchText] = useState(value ? displayValue(value) : null);
33
- const [previousState, setPreviousState] = useState(null);
34
- const [newInterval, setNewInterval] = useState(0);
35
- const [selected, setSelected] = useState(value ? true : false);
36
- let timeOutRequestCall = useRef();
37
- let intervalRequestCall = useRef();
40
+ useEffect(() => {
41
+ if (clickOutside === OUTSIDE_INDICATOR && displayList) {
42
+ setDisplayList(false);
43
+ }
44
+ }, [clickOutside, displayList]);
38
45
  const handleAPICall = useCallback(() => {
39
46
  if (!selected) {
40
47
  if (searchText == null && searchText === '') {
@@ -46,15 +53,8 @@ const AutoCompleteSearch = ({ objectList, value = null, onChangeValue, fetchData
46
53
  }
47
54
  }, [fetchData, searchText, selected]);
48
55
  useEffect(() => {
49
- if (!selected) {
50
- handleAPICall();
51
- }
52
- }, [selected, handleAPICall]);
53
- useEffect(() => {
54
- if (clickOutside === OUTSIDE_INDICATOR && displayList) {
55
- setDisplayList(false);
56
- }
57
- }, [clickOutside, displayList]);
56
+ handleAPICall();
57
+ }, [handleAPICall]);
58
58
  const handleSelect = useCallback(item => {
59
59
  setDisplayList(false);
60
60
  setSelected(true);
@@ -62,7 +62,7 @@ const AutoCompleteSearch = ({ objectList, value = null, onChangeValue, fetchData
62
62
  onChangeValue(item);
63
63
  }, [changeScreenAfter, displayValue, onChangeValue]);
64
64
  useEffect(() => {
65
- if (navigate && oneFilter) {
65
+ if (oneFilter && navigate != null) {
66
66
  setSearchText('');
67
67
  }
68
68
  }, [navigate, oneFilter]);
@@ -73,36 +73,27 @@ const AutoCompleteSearch = ({ objectList, value = null, onChangeValue, fetchData
73
73
  setSearchText('');
74
74
  onChangeValue(null);
75
75
  };
76
- useEffect(() => {
77
- if ((previousState === '' || previousState == null) &&
78
- searchText != null &&
79
- searchText !== '') {
80
- const id = setInterval(() => setNewInterval(state => state + 1), TIME_BETWEEN_CALL);
81
- intervalRequestCall.current = id;
82
- }
83
- }, [previousState, searchText]);
84
76
  const stopInterval = useCallback(() => {
85
77
  clearInterval(intervalRequestCall.current);
86
- setNewInterval(0);
87
78
  }, []);
88
- useEffect(() => {
89
- if (newInterval > 0) {
90
- handleAPICall();
91
- }
92
- }, [handleAPICall, newInterval]);
79
+ const handleInterval = useCallback(() => {
80
+ handleAPICall();
81
+ }, [handleAPICall]);
93
82
  const handleTimeOut = useCallback(() => {
94
83
  stopInterval();
95
- if (!selected) {
96
- if (searchText == null && searchText === '') {
97
- fetchData(null);
98
- }
99
- else {
100
- fetchData(searchText);
101
- }
84
+ handleAPICall();
85
+ }, [handleAPICall, stopInterval]);
86
+ useEffect(() => {
87
+ if (!isValidString(previousState) && isValidString(searchText)) {
88
+ const id = setInterval(handleInterval, TIME_BETWEEN_CALL);
89
+ intervalRequestCall.current = id;
90
+ return () => {
91
+ stopInterval();
92
+ };
102
93
  }
103
- }, [fetchData, searchText, selected, stopInterval]);
94
+ }, [handleInterval, previousState, searchText, stopInterval]);
104
95
  useEffect(() => {
105
- if (searchText != null) {
96
+ if (isValidString(searchText)) {
106
97
  const id = setTimeout(handleTimeOut, TIME_WITHOUT_INPUT);
107
98
  timeOutRequestCall.current = id;
108
99
  return () => {
@@ -111,15 +102,10 @@ const AutoCompleteSearch = ({ objectList, value = null, onChangeValue, fetchData
111
102
  }
112
103
  }, [handleTimeOut, searchText]);
113
104
  const handleSearchValueChange = useCallback(input => {
114
- if (objectList != null && input != null && input !== '' && !selected) {
115
- if (objectList.length === 1 && selectLastItem === true) {
116
- if (changeScreenAfter || oneFilter) {
117
- setSearchText('');
118
- }
119
- else {
120
- setSearchText(displayValue(objectList[0]));
121
- setDisplayList(false);
122
- }
105
+ if (Array.isArray(objectList) && isValidString(input) && !selected) {
106
+ if (objectList.length === 1 && selectLastItem) {
107
+ setSearchText(changeScreenAfter || oneFilter ? '' : displayValue(objectList[0]));
108
+ setDisplayList(false);
123
109
  stopInterval();
124
110
  onChangeValue(objectList[0]);
125
111
  }
@@ -140,8 +126,23 @@ const AutoCompleteSearch = ({ objectList, value = null, onChangeValue, fetchData
140
126
  selected,
141
127
  stopInterval,
142
128
  ]);
129
+ const handleFocus = useCallback(() => {
130
+ setDisplayList(true);
131
+ onSelection();
132
+ }, [onSelection]);
133
+ const handleSearchPress = useCallback(() => {
134
+ setDisplayList(true);
135
+ }, []);
136
+ useEffect(() => {
137
+ if (isValidString(value)) {
138
+ handleSearchValueChange(value);
139
+ }
140
+ if (value != null && isValidString(displayValue(value))) {
141
+ handleSearchValueChange(displayValue(value));
142
+ }
143
+ }, [displayValue, handleSearchValueChange, value]);
143
144
  return (<View ref={wrapperRef}>
144
- <SearchBar style={style} valueTxt={searchText} placeholder={placeholder} onClearPress={handleClear} onChangeTxt={handleSearchValueChange} onSelection={onSelection} onEndFocus={() => selected && setDisplayList(false)} isFocus={isFocus} onScanPress={onScanPress} scanIconColor={scanIconColor}/>
145
+ <SearchBar style={style} valueTxt={searchText} placeholder={placeholder} onClearPress={handleClear} onChangeTxt={handleSearchValueChange} onSelection={handleFocus} onSearchPress={handleSearchPress} onEndFocus={() => selected && setDisplayList(false)} isFocus={isFocus} onScanPress={onScanPress} scanIconColor={scanIconColor}/>
145
146
  {displayList && !oneFilter && (<SelectionContainer objectList={objectList} displayValue={displayValue} handleSelect={handleSelect}/>)}
146
147
  </View>);
147
148
  };
@@ -1 +1 @@
1
- {"version":3,"file":"AutoCompleteSearch.js","sourceRoot":"","sources":["../../../../src/components/organisms/AutoCompleteSearch/AutoCompleteSearch.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AutoCompleteSearch.js","sourceRoot":"","sources":["../../../../src/components/organisms/AutoCompleteSearch/AutoCompleteSearch.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ interface DropdownMenuItemProps {
2
+ icon?: string;
3
+ color?: string;
4
+ placeholder: string;
5
+ FontAwesome5?: boolean;
6
+ indicator?: number;
7
+ hideIf?: boolean;
8
+ onPress: (any: any) => void;
9
+ }
10
+ declare const DropdownMenuItem: ({ icon, color, placeholder, indicator, FontAwesome5, hideIf, onPress, }: DropdownMenuItemProps) => JSX.Element;
11
+ export default DropdownMenuItem;
@@ -0,0 +1,68 @@
1
+ /*
2
+ * Axelor Business Solutions
3
+ *
4
+ * Copyright (C) 2023 Axelor (<http://axelor.com>).
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU Affero General Public License, version 3,
8
+ * as published by the Free Software Foundation.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU Affero General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU Affero General Public License
16
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ import React from 'react';
19
+ import { StyleSheet, TouchableOpacity, View } from 'react-native';
20
+ import { useThemeColor } from '../../../theme';
21
+ import { Icon, Text } from '../../atoms';
22
+ import { Badge } from '../../molecules';
23
+ const BADGE_SIZE = 12;
24
+ const DropdownMenuItem = ({ icon = 'paperclip', color, placeholder, indicator = 0, FontAwesome5 = true, hideIf = false, onPress, }) => {
25
+ const Colors = useThemeColor();
26
+ if (hideIf) {
27
+ return null;
28
+ }
29
+ return (<TouchableOpacity onPress={onPress} style={styles.menuItem}>
30
+ <View style={styles.iconContainer}>
31
+ <Icon name={icon} color={color || Colors.secondaryColor_dark.background} FontAwesome5={FontAwesome5} size={15}/>
32
+ {indicator > 0 && (<Badge style={styles.badge} txtStyle={styles.badgeText} color={{
33
+ background_light: Colors.backgroundColor,
34
+ foreground: Colors.text,
35
+ background: Colors.primaryColor.background,
36
+ }} title={indicator}/>)}
37
+ </View>
38
+ <Text style={styles.text}>{placeholder}</Text>
39
+ </TouchableOpacity>);
40
+ };
41
+ const styles = StyleSheet.create({
42
+ badge: {
43
+ width: BADGE_SIZE,
44
+ height: BADGE_SIZE,
45
+ borderRadius: Math.ceil(BADGE_SIZE / 2),
46
+ position: 'absolute',
47
+ top: -4,
48
+ right: -8,
49
+ zIndex: 10,
50
+ },
51
+ badgeText: {
52
+ fontSize: Math.ceil(BADGE_SIZE / 2),
53
+ },
54
+ menuItem: {
55
+ flexDirection: 'row',
56
+ alignItems: 'center',
57
+ marginVertical: 5,
58
+ padding: 5,
59
+ },
60
+ text: {
61
+ fontSize: 18,
62
+ },
63
+ iconContainer: {
64
+ marginRight: 10,
65
+ },
66
+ });
67
+ export default DropdownMenuItem;
68
+ //# sourceMappingURL=DropdownMenuItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropdownMenuItem.js","sourceRoot":"","sources":["../../../../src/components/organisms/DropdownMenuItem/DropdownMenuItem.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAChE,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,aAAa,CAAC;AACvC,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAYtC,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB,MAAM,gBAAgB,GAAG,CAAC,EACxB,IAAI,GAAG,WAAW,EAClB,KAAK,EACL,WAAW,EACX,SAAS,GAAG,CAAC,EACb,YAAY,GAAG,IAAI,EACnB,MAAM,GAAG,KAAK,EACd,OAAO,GACe,EAAE,EAAE;IAC1B,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAE/B,IAAI,MAAM,EAAE;QACV,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CACzD;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAChC;QAAA,CAAC,IAAI,CACH,IAAI,CAAC,CAAC,IAAI,CAAC,CACX,KAAK,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,CACtD,YAAY,CAAC,CAAC,YAAY,CAAC,CAC3B,IAAI,CAAC,CAAC,EAAE,CAAC,EAEX;QAAA,CAAC,SAAS,GAAG,CAAC,IAAI,CAChB,CAAC,KAAK,CACJ,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACpB,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAC3B,KAAK,CAAC,CAAC;gBACL,gBAAgB,EAAE,MAAM,CAAC,eAAe;gBACxC,UAAU,EAAE,MAAM,CAAC,IAAI;gBACvB,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,UAAU;aAC3C,CAAC,CACF,KAAK,CAAC,CAAC,SAAS,CAAC,EACjB,CACH,CACH;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,CAC/C;IAAA,EAAE,gBAAgB,CAAC,CACpB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE;QACL,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,UAAU;QAClB,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACvC,QAAQ,EAAE,UAAU;QACpB,GAAG,EAAE,CAAC,CAAC;QACP,KAAK,EAAE,CAAC,CAAC;QACT,MAAM,EAAE,EAAE;KACX;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;KACpC;IACD,QAAQ,EAAE;QACR,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;KACX;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,EAAE;KACb;IACD,aAAa,EAAE;QACb,WAAW,EAAE,EAAE;KAChB;CACF,CAAC,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
@@ -9,9 +9,8 @@ interface MultiValuePickerProps {
9
9
  labelField: string;
10
10
  valueField: string;
11
11
  disabled?: boolean;
12
- disabledValue?: string;
13
- iconName?: string;
12
+ disabledValue?: string[];
14
13
  required?: boolean;
15
14
  }
16
- declare const MultiValuePicker: ({ style, pickerStyle, styleTxt, title, onValueChange, defaultValue, listItems, labelField, valueField, disabled, disabledValue, iconName, required, }: MultiValuePickerProps) => JSX.Element;
15
+ declare const MultiValuePicker: ({ style, pickerStyle, styleTxt, title, onValueChange, defaultValue, listItems, labelField, valueField, disabled, disabledValue, required, }: MultiValuePickerProps) => JSX.Element;
17
16
  export default MultiValuePicker;
@@ -20,17 +20,19 @@ import { Dimensions, StyleSheet, View } from 'react-native';
20
20
  import { useThemeColor } from '../../../theme/ThemeContext';
21
21
  import { getCommonStyles } from '../../../utils/commons-styles';
22
22
  import { Text } from '../../atoms';
23
- import { LabelText, SelectionContainer, MultiValuePickerButton, } from '../../molecules';
23
+ import { SelectionContainer, MultiValuePickerButton } from '../../molecules';
24
24
  import { getItemsFromList } from '../../../utils/list';
25
25
  import { OUTSIDE_INDICATOR, useClickOutside, } from '../../../hooks/use-click-outside';
26
- const MultiValuePicker = ({ style, pickerStyle, styleTxt, title, onValueChange, defaultValue = [], listItems = [], labelField, valueField, disabled = false, disabledValue = '', iconName = null, required = false, }) => {
26
+ import MultiSelectValue from '../MultiSelectValue/MultiSelectValue';
27
+ const MultiValuePicker = ({ style, pickerStyle, styleTxt, title, onValueChange, defaultValue = [], listItems = [], labelField, valueField, disabled = false, disabledValue = [], required = false, }) => {
28
+ const Colors = useThemeColor();
27
29
  const [pickerIsOpen, setPickerIsOpen] = useState(false);
30
+ const [isFocused, setIsFocused] = useState(false);
28
31
  const wrapperRef = useRef(null);
29
32
  const clickOutside = useClickOutside({
30
33
  wrapperRef,
31
34
  visible: pickerIsOpen,
32
35
  });
33
- const Colors = useThemeColor();
34
36
  const [selectedItem, setSelectedItem] = useState(getItemsFromList(listItems, valueField, defaultValue));
35
37
  useEffect(() => {
36
38
  setSelectedItem(getItemsFromList(listItems, valueField, defaultValue));
@@ -38,10 +40,12 @@ const MultiValuePicker = ({ style, pickerStyle, styleTxt, title, onValueChange,
38
40
  useEffect(() => {
39
41
  if (clickOutside === OUTSIDE_INDICATOR && pickerIsOpen) {
40
42
  setPickerIsOpen(false);
43
+ setIsFocused(false);
41
44
  }
42
45
  }, [clickOutside, pickerIsOpen]);
43
46
  const togglePicker = () => {
44
47
  setPickerIsOpen(current => !current);
48
+ setIsFocused(current => !current);
45
49
  };
46
50
  const handleValueChange = useCallback(itemValue => {
47
51
  if (itemValue != null) {
@@ -57,7 +61,7 @@ const MultiValuePicker = ({ style, pickerStyle, styleTxt, title, onValueChange,
57
61
  }
58
62
  }, [onValueChange, selectedItem, valueField]);
59
63
  const _required = useMemo(() => required && (selectedItem == null || selectedItem?.length === 0), [required, selectedItem]);
60
- const commonStyles = useMemo(() => getCommonStyles(Colors), [Colors]);
64
+ const commonStyles = useMemo(() => getCommonStyles(Colors, _required), [Colors, _required]);
61
65
  const styles = useMemo(() => getStyles(Colors, _required), [Colors, _required]);
62
66
  return (<View ref={wrapperRef} style={style}>
63
67
  {!disabled && (<View style={styles.titleContainer}>
@@ -70,16 +74,14 @@ const MultiValuePicker = ({ style, pickerStyle, styleTxt, title, onValueChange,
70
74
  styles.infosCard,
71
75
  pickerStyle,
72
76
  ]}>
73
- {/* TODO : improve here */}
74
- <LabelText value={disabledValue == null || disabledValue === ''
75
- ? '-'
76
- : disabledValue} title={`${title} :`} iconName={iconName}/>
77
+ <MultiSelectValue itemList={disabledValue} title={`${title} :`}/>
77
78
  </View>) : (<View>
78
79
  <MultiValuePickerButton onPress={togglePicker} listItem={selectedItem} labelField={labelField} style={[
79
80
  commonStyles.filter,
80
81
  commonStyles.filterSize,
81
82
  commonStyles.filterAlign,
82
83
  styles.rightIconButton,
84
+ isFocused && commonStyles.inputFocused,
83
85
  pickerStyle,
84
86
  ]} onPressItem={handleValueChange}/>
85
87
  {pickerIsOpen ? (<SelectionContainer objectList={listItems} keyField={valueField} displayValue={item => item[labelField]} handleSelect={handleValueChange} isPicker={true} selectedItem={selectedItem}/>) : null}
@@ -1 +1 @@
1
- {"version":3,"file":"MultiValuePicker.js","sourceRoot":"","sources":["../../../../src/components/organisms/MultiValuePicker/MultiValuePicker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MultiValuePicker.js","sourceRoot":"","sources":["../../../../src/components/organisms/MultiValuePicker/MultiValuePicker.tsx"],"names":[],"mappings":"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"}
@@ -26,6 +26,7 @@ import { OUTSIDE_INDICATOR, useClickOutside, } from '../../../hooks/use-click-ou
26
26
  const ITEM_HEIGHT = 40;
27
27
  const Picker = ({ style, pickerStyle, styleTxt, title, onValueChange, defaultValue = '', listItems, labelField, valueField, emptyValue = true, isValueItem = false, disabled = false, disabledValue = null, iconName = null, required = false, isScrollViewContainer = false, }) => {
28
28
  const [pickerIsOpen, setPickerIsOpen] = useState(false);
29
+ const [isFocused, setIsFocused] = useState(false);
29
30
  const wrapperRef = useRef(null);
30
31
  const clickOutside = useClickOutside({
31
32
  wrapperRef,
@@ -39,13 +40,17 @@ const Picker = ({ style, pickerStyle, styleTxt, title, onValueChange, defaultVal
39
40
  useEffect(() => {
40
41
  if (clickOutside === OUTSIDE_INDICATOR && pickerIsOpen) {
41
42
  setPickerIsOpen(false);
43
+ setIsFocused(false);
42
44
  }
43
45
  }, [clickOutside, pickerIsOpen]);
46
+ const toggleValue = current => !current;
44
47
  const togglePicker = () => {
45
- setPickerIsOpen(current => !current);
48
+ setPickerIsOpen(toggleValue);
49
+ setIsFocused(toggleValue);
46
50
  };
47
51
  const handleValueChange = itemValue => {
48
52
  setPickerIsOpen(false);
53
+ setIsFocused(false);
49
54
  setSelectedItem(itemValue);
50
55
  itemValue
51
56
  ? onValueChange(isValueItem
@@ -63,7 +68,7 @@ const Picker = ({ style, pickerStyle, styleTxt, title, onValueChange, defaultVal
63
68
  }
64
69
  return null;
65
70
  }, [emptyValue, isScrollViewContainer, listItems.length, pickerIsOpen]);
66
- const commonStyles = useMemo(() => getCommonStyles(Colors), [Colors]);
71
+ const commonStyles = useMemo(() => getCommonStyles(Colors, _required), [Colors, _required]);
67
72
  const styles = useMemo(() => getStyles(Colors, _required, marginBottom), [Colors, _required, marginBottom]);
68
73
  return (<View ref={wrapperRef} style={style}>
69
74
  {!disabled && (<View style={styles.titleContainer}>
@@ -85,6 +90,7 @@ const Picker = ({ style, pickerStyle, styleTxt, title, onValueChange, defaultVal
85
90
  commonStyles.filterSize,
86
91
  commonStyles.filterAlign,
87
92
  styles.rightIconButton,
93
+ isFocused && commonStyles.inputFocused,
88
94
  pickerStyle,
89
95
  ]}/>
90
96
  {pickerIsOpen ? (<SelectionContainer emptyValue={emptyValue} objectList={listItems} keyField={valueField} displayValue={item => item[labelField]} handleSelect={handleValueChange} isPicker={true}/>) : null}
@@ -1 +1 @@
1
- {"version":3,"file":"Picker.js","sourceRoot":"","sources":["../../../../src/components/organisms/Picker/Picker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Picker.js","sourceRoot":"","sources":["../../../../src/components/organisms/Picker/Picker.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { Color } from '../../../theme';
2
+ type ProgressBarProps = {
3
+ style?: object;
4
+ styleTxt?: object;
5
+ value?: number;
6
+ total?: number;
7
+ showPercent?: boolean;
8
+ centeredPercent?: boolean;
9
+ colorRepartition?: {
10
+ [key: number]: Color;
11
+ };
12
+ height?: number;
13
+ stripe?: boolean;
14
+ stripeDuration?: number;
15
+ stripeWidth?: number;
16
+ };
17
+ declare const ProgressBar: ({ style, styleTxt, value, total, showPercent, centeredPercent, colorRepartition, height, stripe, stripeDuration, stripeWidth, }: ProgressBarProps) => JSX.Element;
18
+ export default ProgressBar;
@@ -0,0 +1,164 @@
1
+ /*
2
+ * Axelor Business Solutions
3
+ *
4
+ * Copyright (C) 2023 Axelor (<http://axelor.com>).
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU Affero General Public License, version 3,
8
+ * as published by the Free Software Foundation.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU Affero General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU Affero General Public License
16
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ import React, { useMemo, useEffect, useRef, useCallback, useState } from 'react';
19
+ import { StyleSheet, View, Animated } from 'react-native';
20
+ import { useThemeColor } from '../../../theme';
21
+ import { Text } from '../../atoms';
22
+ const ProgressBar = ({ style, styleTxt, value = 0, total = 100, showPercent = true, centeredPercent = false, colorRepartition = {}, height = 30, stripe = true, stripeDuration = 1000, stripeWidth = 40, }) => {
23
+ const Colors = useThemeColor();
24
+ const animatedStripe = useRef(new Animated.Value(0)).current;
25
+ const animatedWidth = useRef(new Animated.Value(0)).current;
26
+ const [progressBarWidth, setProgressBarWidth] = useState(0);
27
+ const [textWidth, setTextWidth] = useState(0);
28
+ const percent = useMemo(() => (total !== 0 ? (value / total) * 100 : 0), [total, value]);
29
+ const progressColors = useMemo(() => {
30
+ if (Object.keys(colorRepartition).length === 0) {
31
+ return {
32
+ 0: Colors.errorColor,
33
+ 25: Colors.cautionColor,
34
+ 50: Colors.progressColor,
35
+ 75: Colors.priorityColor,
36
+ 100: Colors.successColor,
37
+ };
38
+ }
39
+ return colorRepartition;
40
+ }, [Colors, colorRepartition]);
41
+ let color = Colors.cautionColor;
42
+ Object.keys(progressColors).forEach(key => {
43
+ const threshold = parseInt(key, 10);
44
+ if (percent >= threshold && progressColors[threshold]) {
45
+ color = progressColors[threshold];
46
+ }
47
+ });
48
+ const displayText = useMemo(() => {
49
+ if (showPercent) {
50
+ return `${percent.toFixed(2)}%`;
51
+ }
52
+ return `${value}/${total}`;
53
+ }, [percent, showPercent, total, value]);
54
+ const displayTextOutside = useMemo(() => {
55
+ if (centeredPercent) {
56
+ return true;
57
+ }
58
+ return progressBarWidth - textWidth * 1.3 < 0;
59
+ }, [centeredPercent, progressBarWidth, textWidth]);
60
+ const styles = useMemo(() => getStyles(Colors, height, color, percent, stripeWidth, progressBarWidth), [Colors, height, color, percent, stripeWidth, progressBarWidth]);
61
+ useEffect(() => {
62
+ Animated.timing(animatedWidth, {
63
+ toValue: percent,
64
+ duration: 500,
65
+ useNativeDriver: false,
66
+ }).start();
67
+ }, [percent, animatedWidth]);
68
+ useEffect(() => {
69
+ const stripeAnimation = Animated.loop(Animated.timing(animatedStripe, {
70
+ toValue: 1,
71
+ duration: stripeDuration,
72
+ useNativeDriver: true,
73
+ }));
74
+ stripeAnimation.start();
75
+ }, [animatedStripe, stripeDuration]);
76
+ const translateX = animatedStripe.interpolate({
77
+ inputRange: [0, 1],
78
+ outputRange: [-stripeWidth, progressBarWidth],
79
+ });
80
+ const renderPercent = useCallback(() => {
81
+ return (<Text style={[styles.text, styleTxt]} onTextLayout={event => {
82
+ setTextWidth(event.nativeEvent.lines?.[0]?.width);
83
+ }}>
84
+ {displayText}
85
+ </Text>);
86
+ }, [displayText, styles, styleTxt]);
87
+ return (<View style={[styles.container, style]}>
88
+ {displayTextOutside ? (<View style={centeredPercent ? styles.centeredPercent : styles.percent}>
89
+ {renderPercent()}
90
+ </View>) : null}
91
+ <Animated.View onLayout={event => {
92
+ const { width } = event.nativeEvent.layout;
93
+ setProgressBarWidth(width);
94
+ }} style={[
95
+ styles.progressBar,
96
+ {
97
+ width: animatedWidth.interpolate({
98
+ inputRange: [0, 100],
99
+ outputRange: ['0%', '100%'],
100
+ }),
101
+ },
102
+ ]}>
103
+ <Animated.View style={[
104
+ stripe && percent < 100 ? styles.stripe : styles.none,
105
+ {
106
+ transform: [{ translateX }],
107
+ },
108
+ ]}/>
109
+ {!displayTextOutside ? renderPercent() : null}
110
+ </Animated.View>
111
+ </View>);
112
+ };
113
+ const getStyles = (Colors, height, color, percent, stripeWidth, progressBarWidth) => StyleSheet.create({
114
+ container: {
115
+ width: '100%',
116
+ height: height + 2,
117
+ borderRadius: 8,
118
+ elevation: 3,
119
+ shadowOpacity: 0.5,
120
+ shadowColor: Colors.secondaryColor.background,
121
+ shadowOffset: { width: 0, height: 0 },
122
+ backgroundColor: Colors.backgroundColor,
123
+ borderWidth: 1,
124
+ borderColor: Colors.secondaryColor.background,
125
+ zIndex: 1,
126
+ },
127
+ progressBar: {
128
+ borderRadius: 7,
129
+ justifyContent: 'center',
130
+ alignItems: 'center',
131
+ backgroundColor: color.background,
132
+ width: `${percent}%`,
133
+ maxWidth: '100%',
134
+ height: height,
135
+ overflow: 'hidden',
136
+ },
137
+ stripe: {
138
+ position: 'absolute',
139
+ top: 0,
140
+ bottom: 0,
141
+ left: 0,
142
+ width: stripeWidth,
143
+ backgroundColor: 'rgba(255, 255, 255, 0.5)',
144
+ },
145
+ text: {
146
+ textAlign: 'center',
147
+ },
148
+ percent: {
149
+ position: 'absolute',
150
+ left: progressBarWidth + 5,
151
+ top: height / 2 - 10,
152
+ },
153
+ centeredPercent: {
154
+ position: 'absolute',
155
+ left: '45%',
156
+ top: height / 2 - 10,
157
+ zIndex: 2,
158
+ },
159
+ none: {
160
+ display: 'none',
161
+ },
162
+ });
163
+ export default ProgressBar;
164
+ //# sourceMappingURL=ProgressBar.js.map