6.1.11 • Published 2 years ago

bpk-component-autosuggest-css v6.1.11

Weekly downloads
202
License
Apache-2.0
Repository
github
Last release
2 years ago

bpk-component-autosuggest

Backpack autosuggest component.

Installation

npm install bpk-component-autosuggest --save-dev

Usage

import React, { Component } from 'react';
import BpkLabel from 'bpk-component-label';
import { withRtlSupport } from 'bpk-component-icon';
import FlightIcon from 'bpk-component-icon/lg/flight';
import BpkAutosuggest, { BpkAutosuggestSuggestion } from 'bpk-component-autosuggest';

const BpkFlightIcon = withRtlSupport(FlightIcon);

const offices = [
  {
    name: 'Barcelona',
    code: 'BCN',
    country: 'Spain',
  },
  ...
];

const getSuggestions = (value) => {
  const inputValue = value.trim().toLowerCase();
  const inputLength = inputValue.length;

  return inputLength === 0 ? [] : offices.filter(office =>
    office.name.toLowerCase().indexOf(inputValue) !== -1,
  );
};

const getSuggestionValue = ({ name, code }) => `${name} (${code})`;

const renderSuggestion = suggestion => (
  <BpkAutosuggestSuggestion
    value={getSuggestionValue(suggestion)}
    subHeading={suggestion.country}
    tertiaryLabel="Airport"
    indent={suggestion.indent}
    icon={BpkFlightIcon}
  />
);

class MyComponent extends Component {
  constructor() {
    super();

    this.state = {
      value: '',
      suggestions: [],
    };

  }

  onChange = (e, { newValue }) => {
    this.setState({
      value: newValue,
    });
  }

  onSuggestionsFetchRequested = ({ value }) => {
    this.setState({
      suggestions: getSuggestions(value),
    });
  }

  onSuggestionsClearRequested = () => {
    this.setState({
      suggestions: [],
    });
  }

  render() {
    const { value, suggestions } = this.state;

    const inputProps = {
      id: 'my-autosuggest',
      name: 'my-autosuggest',
      placeholder: 'Enter an office name',
      value,
      onChange: this.onChange,
    };

    return (
      <div>
        <BpkLabel htmlFor="my-autosuggest">Office</BpkLabel>
        <BpkAutosuggest
          suggestions={suggestions}
          onSuggestionsFetchRequested={this.onSuggestionsFetchRequested}
          onSuggestionsClearRequested={this.onSuggestionsClearRequested}
          getSuggestionValue={getSuggestionValue}
          renderSuggestion={renderSuggestion}
          inputProps={inputProps}
        />
      </div>
    );
  }
}

Props

BpkAutosuggest:

Please refer to react-autosuggest's documentation for a full list of props.

Note: The inputProps object is passed directly to a BpkInput component, so its prop types apply also.

BpkAutosuggestSuggestion:

PropertyPropTypeRequiredDefault Value
valuestringtrue-
subHeadingstringfalsenull
tertiaryLabelstringfalsenull
iconfuncfalsenull
indentboolfalsefalse
classNamestringfalsenull
6.1.11

2 years ago

6.1.9

2 years ago

6.1.5

2 years ago

6.1.7

2 years ago

6.1.2

2 years ago

6.1.4

2 years ago

6.1.1

2 years ago

6.0.41

2 years ago

6.0.38

2 years ago

6.0.36

2 years ago

6.0.35

2 years ago

6.0.27

2 years ago

6.0.26

2 years ago

6.0.29

2 years ago

6.0.24

3 years ago

6.0.19

3 years ago

6.0.16

3 years ago

6.0.14

3 years ago

6.0.13

3 years ago

6.0.12

3 years ago

6.0.11

3 years ago

6.0.9

3 years ago

6.0.10

3 years ago

6.0.8

3 years ago

6.0.7

3 years ago

6.0.6

3 years ago

6.0.5

3 years ago

6.0.4

3 years ago

6.0.3

3 years ago

6.0.2

3 years ago

6.0.1

3 years ago

6.0.0

3 years ago

5.1.8

3 years ago

5.1.6

3 years ago

5.1.5

3 years ago

5.1.4

3 years ago

5.1.3

3 years ago

5.1.2

3 years ago

5.1.1

3 years ago

5.1.0

3 years ago

5.0.29

3 years ago

5.0.27

3 years ago

5.0.28

3 years ago

5.0.26

3 years ago

5.0.24

3 years ago

5.0.23

3 years ago

5.0.22

3 years ago

5.0.21

3 years ago

5.0.20

3 years ago

5.0.18

3 years ago

5.0.19

3 years ago

5.0.16

3 years ago

5.0.17

3 years ago

5.0.15

3 years ago

5.0.14

3 years ago

5.0.12

3 years ago

5.0.13

3 years ago

5.0.11

3 years ago

5.0.10

3 years ago

5.0.9

3 years ago

5.0.8

3 years ago

5.0.7

3 years ago

5.0.6

3 years ago

5.0.5

3 years ago

5.0.4

3 years ago

5.0.3

3 years ago

5.0.2

3 years ago

5.0.1

3 years ago

5.0.0

3 years ago

4.1.29

3 years ago

4.1.28

3 years ago

4.1.27

3 years ago

4.1.25

3 years ago

4.1.26

3 years ago

4.1.23

3 years ago

4.1.24

3 years ago

4.1.20

3 years ago

4.1.19

4 years ago

4.1.18

4 years ago

4.1.17

4 years ago

4.1.16

4 years ago

4.1.14

4 years ago

4.1.13

4 years ago

4.1.12

4 years ago

4.1.11

4 years ago

4.1.10

4 years ago

4.1.9

4 years ago

4.1.7

4 years ago

4.1.6

4 years ago

4.1.5

4 years ago

4.1.0

4 years ago

4.0.73

4 years ago

4.0.72

4 years ago

4.0.70

4 years ago

4.0.69

4 years ago

4.0.68

4 years ago

4.0.67

4 years ago