secullum-react-native-ui 4.15.1-beta.0 → 4.15.1-beta.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.
@@ -40,6 +40,7 @@ export declare class DropDown extends React.Component<DropDownProperties, DropDo
40
40
  icon?: string | undefined;
41
41
  nativeID?: string | undefined;
42
42
  }[];
43
+ shouldDisplaySearchField: () => boolean | undefined;
43
44
  renderClosedDropDown: (item: any, inputStyle: any) => JSX.Element | null;
44
45
  getStyles: () => any;
45
46
  render(): JSX.Element;
@@ -110,6 +110,10 @@ class DropDown extends React.Component {
110
110
  const { searchText } = this.state;
111
111
  return items.filter(item => item.label.toLowerCase().includes(searchText.toLowerCase()));
112
112
  };
113
+ this.shouldDisplaySearchField = () => {
114
+ const { items, searchable } = this.props;
115
+ return items.length >= 10 && searchable;
116
+ };
113
117
  this.renderClosedDropDown = (item, inputStyle) => {
114
118
  const { iconComponent } = this.props;
115
119
  const theme = (0, theme_1.getTheme)();
@@ -192,7 +196,7 @@ class DropDown extends React.Component {
192
196
  right: 16
193
197
  },
194
198
  modalOverlay: {
195
- justifyContent: this.props.items.length >= 10 && this.props.searchable ? 'flex-start' : 'center'
199
+ justifyContent: this.shouldDisplaySearchField() ? 'flex-start' : 'center'
196
200
  },
197
201
  modalContainer: {
198
202
  maxHeight: '95%',
@@ -285,7 +289,8 @@ class DropDown extends React.Component {
285
289
  const selectedItem = items.find(x => x.value === value);
286
290
  const styles = this.getStyles();
287
291
  const theme = (0, theme_1.getTheme)();
288
- const filteredItems = items.filter(item => item.label.toLowerCase().includes(searchText.toLowerCase()));
292
+ const filteredItems = this.filteredItems();
293
+ const visibleItems = searchable ? filteredItems : items;
289
294
  return (React.createElement(react_native_1.TouchableWithoutFeedback, { onPress: () => __awaiter(this, void 0, void 0, function* () {
290
295
  if (onPress) {
291
296
  const result = yield onPress();
@@ -315,19 +320,12 @@ class DropDown extends React.Component {
315
320
  justifyContent: 'center'
316
321
  }
317
322
  ] },
318
- items.length >= 10 && searchable && (React.createElement(react_native_1.View, { style: styles.searchContainer }, React.createElement(react_native_1.View, { style: styles.inputWrapper }, React.createElement(react_native_1.TextInput, {
319
- style: styles.searchInput,
320
- value: searchText,
321
- placeholder: 'Buscar',
322
- onChangeText: (text) => this.setState({ searchText: text })
323
- }), React.createElement(FontAwesome_1.default, {
324
- name: "search",
325
- size: 16,
326
- color: "gray",
327
- style: styles.searchIcon
328
- })))),
329
- filteredItems.length > 0 ? (React.createElement(react_native_1.FlatList, { data: searchable ? filteredItems : items, initialNumToRender: filteredItems.length, keyExtractor: item => item.value.toString(), renderItem: ({ item, index }) => {
330
- return (React.createElement(DropDownItem, { nativeID: item.nativeID, first: index === 0, last: index === (searchable ? filteredItems : items).length - 1, label: item.label, value: item.value, onPress: this.handleItemPress, icon: item.icon, iconComponent: iconComponent }));
323
+ this.shouldDisplaySearchField() && (React.createElement(react_native_1.View, { style: styles.searchContainer },
324
+ React.createElement(react_native_1.View, { style: styles.inputWrapper },
325
+ React.createElement(react_native_1.TextInput, { style: styles.searchInput, value: searchText, placeholder: "Buscar", onChangeText: (text) => this.setState({ searchText: text }) }),
326
+ React.createElement(FontAwesome_1.default, { name: "search", size: 16, color: "gray", style: styles.searchIcon })))),
327
+ filteredItems.length > 0 ? (React.createElement(react_native_1.FlatList, { data: visibleItems, initialNumToRender: filteredItems.length, keyExtractor: item => item.value.toString(), renderItem: ({ item, index }) => {
328
+ return (React.createElement(DropDownItem, { nativeID: item.nativeID, first: index === 0, last: index === visibleItems.length - 1, label: item.label, value: item.value, onPress: this.handleItemPress, icon: item.icon, iconComponent: iconComponent }));
331
329
  } })) : (React.createElement(react_native_1.View, { style: styles.emptyMessageContainer },
332
330
  React.createElement(FontAwesome_1.default, { name: "warning", color: theme.warningColor, size: 24 }),
333
331
  React.createElement(react_native_1.Text, { style: styles.modalItem }, emptyMessage)))))))));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "secullum-react-native-ui",
3
- "version": "4.15.1-beta.0",
3
+ "version": "4.15.1-beta.1",
4
4
  "main": "lib/index.js",
5
5
  "types": "lib/index.d.ts",
6
6
  "files": [