0.1.29 • Published 4 years ago

@belong-ui/tags-input v0.1.29

Weekly downloads
9
License
MIT
Repository
github
Last release
4 years ago

Examples:

TagsInput is a set of components that can be used to build autosuggestion with tags components.

const suggestions = [
  { name: 'apple'},
  { name: 'orange'},
  { name: 'banana'},
  { name: 'mango'},
  { name: 'badam'},
  { name: 'grapes'},
  { name: 'pineapple'},
  { name: 'guava'},
  { name: 'pear'},
];


initialState = {
  searchValue: '',
  selectedItem: [],
  isLoading: false,
  filteredSuggestions: suggestions,
};

<div>
  <div>Without Expanded</div>
  <br /><br />
  <TagsInput
    searchValue={state.searchValue}
    onAddTag={(newTag, meta) => {
      if (meta.isSuggestion) {
        setState(prevState => ({
          selectedItem: [...prevState.selectedItem, newTag.name],
          searchValue: '',
        }));
      } else {
        setState(prevState => ({
          selectedItem: [...prevState.selectedItem, newTag],
          searchValue: '',
        }));
      }
    }}
    isSearchLoading={state.isLoading}
    onSearchChange={(value) => {
      setState({ searchValue: value, isLoading: true });

      setTimeout(() => {
        const filteredSuggestions = suggestions.filter(suggestion => (
          suggestion['name'].indexOf(value) !== -1 || !value
        ));

        setState({ isLoading: false, filteredSuggestions });
      }, 1200);
    }}
    OnRemoveTag={(item, index, meta) => {
      setState({
        selectedItem: state.selectedItem.filter((item, i) => i !== index),
      });
    }}
    suggestions={state.filteredSuggestions}
    tags={state.selectedItem}
    renderTag={tag => tag}
    isEditableTag={(tag) => { return !_.get(tag, 'readOnly', false); }}
    renderSuggestion={(suggestion) => (<span>{suggestion.name}</span>)}
    searchPlaceholder="To"
    messageIfNoSearchResults="No Search Result"
  />
  <br /><br />
  <div>With Expandad</div>
  <br /><br />
  <TagsInput
    isExpanded
    searchValue={state.searchValue}
    onAddTag={(newTag, meta) => {
      if (meta.isSuggestion) {
        setState(prevState => ({
          selectedItem: [...prevState.selectedItem, newTag.name],
          searchValue: '',
        }));
      } else {
        setState(prevState => ({
          selectedItem: [...prevState.selectedItem, newTag],
          searchValue: '',
        }));
      }
    }}
    isSearchLoading={state.isLoading}
    onSearchChange={(value) => {
      setState({ searchValue: value, isLoading: true });

      setTimeout(() => {
        const filteredSuggestions = suggestions.filter(suggestion => (
          suggestion['name'].indexOf(value) !== -1 || !value
        ));

        setState({ isLoading: false, filteredSuggestions });
      }, 1200);
    }}
    OnRemoveTag={(item, index, meta) => {
      setState({
        selectedItem: state.selectedItem.filter((item, i) => i !== index),
      });
    }}
    suggestions={state.filteredSuggestions}
    tags={state.selectedItem}
    renderTag={tag => tag}
    renderSuggestion={(suggestion) => (<span>{suggestion.name}</span>)}
    searchPlaceholder="To"
    messageIfNoSearchResults="No Search Result"
  />
</div>
0.1.29

4 years ago

0.1.28

4 years ago

0.1.26

4 years ago

0.1.27

4 years ago

0.1.25

4 years ago

0.1.24

4 years ago

0.1.23

4 years ago

0.1.22

4 years ago

0.1.21

4 years ago

0.1.20

4 years ago

0.1.19

4 years ago

0.1.18

4 years ago

0.1.17

4 years ago

0.1.16

4 years ago

0.1.15

4 years ago

0.1.14

4 years ago

0.1.13

4 years ago

0.1.12

4 years ago

0.1.11

4 years ago