@trilogy-ds/react 0.0.1-beta.23 → 0.0.1-beta.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/autocomplete/AutoComplete.d.ts +2 -1
- package/lib/components/autocomplete/AutoComplete.js +22 -14
- package/lib/components/autocomplete/AutoComplete.js.map +1 -1
- package/lib/components/autocomplete/AutoComplete.native.d.ts +3 -3
- package/lib/components/autocomplete/AutoComplete.native.js +18 -13
- package/lib/components/autocomplete/AutoComplete.native.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ import { AutoCompleteProps, Item } from './AutoCompleteProps';
|
|
|
7
7
|
* @param data {string[]} Datas AutoComplete list Item
|
|
8
8
|
* @param inputValue {string} Value of Input
|
|
9
9
|
* @param onChange {Function} OnChange Input Event
|
|
10
|
+
* @param onFocus {Function} OnFocus Input Event
|
|
10
11
|
* @param children {Function} Custom Component for dropdown list
|
|
11
12
|
* @param displayMenu {boolean} Display Autocomplete Menu (default: true)
|
|
12
13
|
* @param matching {Function} matching function
|
|
@@ -20,5 +21,5 @@ import { AutoCompleteProps, Item } from './AutoCompleteProps';
|
|
|
20
21
|
* @param customIcon {string} Additional icon classes
|
|
21
22
|
* @param debounceSuggestionsTimeout {number} Timeout for getSuggestions debounce
|
|
22
23
|
*/
|
|
23
|
-
declare const AutoComplete: <T extends string | Item<unknown> = string>({ defaultValue, value, classNameMenu, absoluteMenu, fullwidthMenu, placeholder, data, status, onBlur, testId, onChange, name, matching, displayMenu, onItemSelected, customIcon, reference, inputValue, disabled, children, accessibilityLabel, onIconClick, getSuggestions, debounceSuggestionsTimeout, }: AutoCompleteProps<T>) => JSX.Element;
|
|
24
|
+
declare const AutoComplete: <T extends string | Item<unknown> = string>({ defaultValue, value, classNameMenu, absoluteMenu, fullwidthMenu, placeholder, data, status, onBlur, testId, onChange, name, matching, displayMenu, onItemSelected, customIcon, reference, inputValue, disabled, children, accessibilityLabel, onIconClick, getSuggestions, debounceSuggestionsTimeout, onFocus, }: AutoCompleteProps<T>) => JSX.Element;
|
|
24
25
|
export default AutoComplete;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import clsx from 'clsx';
|
|
1
2
|
import React, { useEffect, useState } from 'react';
|
|
3
|
+
import { useTrilogyContext } from '../../context';
|
|
4
|
+
import { hashClass } from '../../helpers';
|
|
5
|
+
import { is } from '../../services';
|
|
2
6
|
import { Input, InputAutoCompleteType } from '../input';
|
|
7
|
+
import { defaultMatching, getLabel } from './Autocomplete.helpers';
|
|
3
8
|
import AutoCompleteItem from './item';
|
|
4
9
|
import AutoCompleteMenu from './menu';
|
|
5
|
-
import { is } from '../../services';
|
|
6
|
-
import clsx from 'clsx';
|
|
7
|
-
import { hashClass } from '../../helpers';
|
|
8
|
-
import { useTrilogyContext } from '../../context';
|
|
9
|
-
import { getLabel, defaultMatching } from './Autocomplete.helpers';
|
|
10
10
|
import { debounce } from './utils';
|
|
11
11
|
/**
|
|
12
12
|
* AutoComplete Component
|
|
@@ -15,6 +15,7 @@ import { debounce } from './utils';
|
|
|
15
15
|
* @param data {string[]} Datas AutoComplete list Item
|
|
16
16
|
* @param inputValue {string} Value of Input
|
|
17
17
|
* @param onChange {Function} OnChange Input Event
|
|
18
|
+
* @param onFocus {Function} OnFocus Input Event
|
|
18
19
|
* @param children {Function} Custom Component for dropdown list
|
|
19
20
|
* @param displayMenu {boolean} Display Autocomplete Menu (default: true)
|
|
20
21
|
* @param matching {Function} matching function
|
|
@@ -28,7 +29,7 @@ import { debounce } from './utils';
|
|
|
28
29
|
* @param customIcon {string} Additional icon classes
|
|
29
30
|
* @param debounceSuggestionsTimeout {number} Timeout for getSuggestions debounce
|
|
30
31
|
*/
|
|
31
|
-
const AutoComplete = ({ defaultValue, value, classNameMenu, absoluteMenu, fullwidthMenu, placeholder, data, status, onBlur, testId, onChange, name, matching = defaultMatching, displayMenu = true, onItemSelected, customIcon, reference, inputValue, disabled, children, accessibilityLabel, onIconClick, getSuggestions, debounceSuggestionsTimeout, }) => {
|
|
32
|
+
const AutoComplete = ({ defaultValue, value, classNameMenu, absoluteMenu, fullwidthMenu, placeholder, data, status, onBlur, testId, onChange, name, matching = defaultMatching, displayMenu = true, onItemSelected, customIcon, reference, inputValue, disabled, children, accessibilityLabel, onIconClick, getSuggestions, debounceSuggestionsTimeout, onFocus, }) => {
|
|
32
33
|
var _a;
|
|
33
34
|
const { styled } = useTrilogyContext();
|
|
34
35
|
const [itemSelected, setItemSelected] = useState(null);
|
|
@@ -57,16 +58,16 @@ const AutoComplete = ({ defaultValue, value, classNameMenu, absoluteMenu, fullwi
|
|
|
57
58
|
setValue((_b = (_a = placeholder !== null && placeholder !== void 0 ? placeholder : value) !== null && _a !== void 0 ? _a : defaultValue) !== null && _b !== void 0 ? _b : '');
|
|
58
59
|
}, [value, defaultValue]);
|
|
59
60
|
useEffect(() => {
|
|
60
|
-
|
|
61
|
-
if (matching && data) {
|
|
62
|
-
setSearch(matching(data, _inputValue));
|
|
63
|
-
}
|
|
64
|
-
}
|
|
61
|
+
setSearch(matching(data, _inputValue));
|
|
65
62
|
}, [data]);
|
|
66
63
|
const onTextChanged = async (e) => {
|
|
67
64
|
setIsAutocompleteMenuVisible(true);
|
|
68
65
|
if (onChange) {
|
|
69
|
-
onChange({
|
|
66
|
+
onChange({
|
|
67
|
+
inputName: name || '',
|
|
68
|
+
inputValue: e.inputValue,
|
|
69
|
+
inputSelectionStart: null,
|
|
70
|
+
});
|
|
70
71
|
}
|
|
71
72
|
// Check if the input value is a regular expression or a string
|
|
72
73
|
if (e.inputValue.startsWith('/') && e.inputValue.endsWith('/')) {
|
|
@@ -90,7 +91,9 @@ const AutoComplete = ({ defaultValue, value, classNameMenu, absoluteMenu, fullwi
|
|
|
90
91
|
setSearch(matching(data, e.inputValue));
|
|
91
92
|
}
|
|
92
93
|
};
|
|
93
|
-
const onInputChange = debounceSuggestionsTimeout
|
|
94
|
+
const onInputChange = debounceSuggestionsTimeout
|
|
95
|
+
? debounce(onTextChanged, debounceSuggestionsTimeout)
|
|
96
|
+
: onTextChanged;
|
|
94
97
|
const suggestionSelected = (value, data, search) => {
|
|
95
98
|
setIsAutocompleteMenuVisible(false);
|
|
96
99
|
setInputValue(getLabel(value));
|
|
@@ -124,6 +127,11 @@ const AutoComplete = ({ defaultValue, value, classNameMenu, absoluteMenu, fullwi
|
|
|
124
127
|
default:
|
|
125
128
|
}
|
|
126
129
|
};
|
|
130
|
+
const handleFocus = (event) => {
|
|
131
|
+
setIsAutocompleteMenuVisible(true);
|
|
132
|
+
if (onFocus)
|
|
133
|
+
onFocus(event);
|
|
134
|
+
};
|
|
127
135
|
return (React.createElement("div", { className: hashClass(styled, clsx('control')) },
|
|
128
136
|
React.createElement(Input, { accessibilityLabel: accessibilityLabel, ...(customIcon ? { customIcon: customIcon } : {}), reference: reference, placeholder: _value, ...(name ? { name: name } : {}), className: 'autocomplete-input', type: 'text', testId: testId, status: status, autoCompleteType: InputAutoCompleteType.OFF, disabled: disabled,
|
|
129
137
|
// Add delay for selection of suggestion
|
|
@@ -131,7 +139,7 @@ const AutoComplete = ({ defaultValue, value, classNameMenu, absoluteMenu, fullwi
|
|
|
131
139
|
setTimeout(() => setIsAutocompleteMenuVisible(false), 250);
|
|
132
140
|
if (onBlur)
|
|
133
141
|
onBlur(e);
|
|
134
|
-
}, onFocus:
|
|
142
|
+
}, onFocus: handleFocus, onKeyUp: handleKeyPress, value: _inputValue, onChange: (event) => {
|
|
135
143
|
onInputChange(event);
|
|
136
144
|
}, onIconClick: onIconClick }),
|
|
137
145
|
isAutocompleteMenuVisible && (React.createElement("div", { className: autocompleteClasses }, search.length > 0 && (React.createElement(AutoCompleteMenu, { testId: testId, absolute: absoluteMenu, fullwidth: fullwidthMenu, className: classNameMenu }, search.map((item, i) => (React.createElement(AutoCompleteItem, { active: activeItem === i, key: i, testId: testId, item: item, suggestionSelected: (v) => suggestionSelected(v, data, search) }, children ? children(item) : getLabel(item)))))))),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoComplete.js","sourceRoot":"","sources":["../../../components/autocomplete/AutoComplete.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"AutoComplete.js","sourceRoot":"","sources":["../../../components/autocomplete/AutoComplete.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { ComponentName } from '../enumsComponentsName';
|
|
3
|
+
import { AutoCompleteProps } from './AutoCompleteProps';
|
|
4
4
|
declare const AutoComplete: {
|
|
5
|
-
({ value, data, onChange, displayMenu, onItemSelected, customIcon, placeholder, matching, getSuggestions, debounceSuggestionsTimeout, }: AutoCompleteProps): JSX.Element;
|
|
5
|
+
({ value, data, onChange, displayMenu, onItemSelected, customIcon, placeholder, matching, getSuggestions, debounceSuggestionsTimeout, onFocus, }: AutoCompleteProps): JSX.Element;
|
|
6
6
|
displayName: ComponentName;
|
|
7
7
|
};
|
|
8
8
|
export default AutoComplete;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import React, { useEffect, useMemo, useState } from
|
|
2
|
-
import { Keyboard, StyleSheet, View } from
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import { defaultMatching, getLabel } from
|
|
6
|
-
import
|
|
7
|
-
import { debounce } from
|
|
8
|
-
const AutoComplete = ({ value, data, onChange, displayMenu, onItemSelected, customIcon, placeholder, matching = defaultMatching, getSuggestions, debounceSuggestionsTimeout, }) => {
|
|
9
|
-
const [valueInput, setValueInput] = useState(value !== null && value !== void 0 ? value :
|
|
1
|
+
import React, { useEffect, useMemo, useState } from 'react';
|
|
2
|
+
import { Keyboard, StyleSheet, View } from 'react-native';
|
|
3
|
+
import { ComponentName } from '../enumsComponentsName';
|
|
4
|
+
import Input from '../input/Input.native';
|
|
5
|
+
import { defaultMatching, getLabel } from './Autocomplete.helpers';
|
|
6
|
+
import AutoCompleteMenuNative from './menu/AutoCompleteMenu.native';
|
|
7
|
+
import { debounce } from './utils';
|
|
8
|
+
const AutoComplete = ({ value, data, onChange, displayMenu, onItemSelected, customIcon, placeholder, matching = defaultMatching, getSuggestions, debounceSuggestionsTimeout, onFocus, }) => {
|
|
9
|
+
const [valueInput, setValueInput] = useState(value !== null && value !== void 0 ? value : '');
|
|
10
10
|
const [suggestions, setSuggestions] = useState(data !== null && data !== void 0 ? data : []);
|
|
11
11
|
const [isOpenMenu, setIsOpenMenu] = useState(displayMenu !== null && displayMenu !== void 0 ? displayMenu : false);
|
|
12
12
|
const updateSuggestions = async (valueInput) => {
|
|
@@ -53,9 +53,14 @@ const AutoComplete = ({ value, data, onChange, displayMenu, onItemSelected, cust
|
|
|
53
53
|
});
|
|
54
54
|
}
|
|
55
55
|
};
|
|
56
|
+
const handleFocus = (event) => {
|
|
57
|
+
setIsOpenMenu(true);
|
|
58
|
+
if (onFocus)
|
|
59
|
+
onFocus(event);
|
|
60
|
+
};
|
|
56
61
|
useEffect(() => {
|
|
57
|
-
const keyboardDidShowListener = Keyboard.addListener(
|
|
58
|
-
const keyboardDidHideListener = Keyboard.addListener(
|
|
62
|
+
const keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', () => setIsOpenMenu(true));
|
|
63
|
+
const keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', () => setIsOpenMenu(false));
|
|
59
64
|
return () => {
|
|
60
65
|
keyboardDidHideListener.remove();
|
|
61
66
|
keyboardDidShowListener.remove();
|
|
@@ -63,12 +68,12 @@ const AutoComplete = ({ value, data, onChange, displayMenu, onItemSelected, cust
|
|
|
63
68
|
}, []);
|
|
64
69
|
return (React.createElement(View, { style: styles.autoComplete },
|
|
65
70
|
React.createElement(View, null,
|
|
66
|
-
React.createElement(Input, { placeholder: placeholder, type: 'text',
|
|
71
|
+
React.createElement(Input, { placeholder: placeholder, type: 'text', customIcon: customIcon, value: valueInput, hasIcon: Boolean(customIcon), onChange: onTextChanged, onFocus: handleFocus })),
|
|
67
72
|
isOpenMenu && (React.createElement(AutoCompleteMenuNative, { suggestions: suggestions, handleSelectItem: handleSelectItem }))));
|
|
68
73
|
};
|
|
69
74
|
const styles = StyleSheet.create({
|
|
70
75
|
autoComplete: {
|
|
71
|
-
position:
|
|
76
|
+
position: 'relative',
|
|
72
77
|
},
|
|
73
78
|
});
|
|
74
79
|
AutoComplete.displayName = ComponentName.AutoComplete;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoComplete.native.js","sourceRoot":"","sources":["../../../components/autocomplete/AutoComplete.native.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"AutoComplete.native.js","sourceRoot":"","sources":["../../../components/autocomplete/AutoComplete.native.tsx"],"names":[],"mappings":"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"}
|