Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

react-loqate

Package Overview
Dependencies
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-loqate

This is a React implementation of the loqate APIs. It features an input, typing in which will result in a list of address options. Clicking an option will trigger your callback with that option.

  • 3.0.0
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

React-Loqate

This is a React implementation of the loqate APIs. It features an input, typing in which will result in a list of address options. Clicking an option will trigger your callback with that option.

Usage

Notes

You must polyfill fetch.

Installation

npm install react-loqate

Example

import AddressSearch from 'react-loqate';
// to use the default styles for the default components
import 'react-loqate/dist/index.css';

// ...
<AddressSearch
  locale="en-GB"
  apiKey="AA11-AA11-AA11-AA11"
  onSelect={(address) => console.log(address)}
/>;
// ...

Props

nametyperequiredexampledescription
apiKeystringyes"AA11-AA11-AA11-AA11"Loqate API key
localestringyes"en-GB"Language to be used
onSelect(address) => voidyesaddress => console.log(address)Callback with for Loqate response
countriesstring[]no["GB", "NL"]Countries to search in
limitnumberno10Number of options to show
classes{ input?: string, list?: string, listItem?: string}no{ list: 'list' }Classnames for the components
componentssee Customizationno{ Input: CustomInput, List: CustomList, ListItem: CustomListItem, }Components to overwrite the default ones
inlinebooleannotrueRender results inline with the input
debouncenumberno100Debounce the calls to the Loqate API

Customization

You can either style the default input, list and listitem with their respective classes or replace them completely by passing in your own components in the components prop.

Custom Input and List components must forward a ref!

All custom components must pass down their props!

import React from 'react';
import AddressSearch from 'react-loqate';

<AddressSearch
  // ...
  components={{
    List: forwardRef(({ className, ...rest }, ref) => (
      <ul
        className={clsx('react-loqate-default-list', className)}
        ref={ref}
        // ...
        {...rest}
      />
    )),
    ListItem: ({ suggestion, ...rest }) => (
      <li
        onKeyDown={(e) => {
          if (e.key === 'ArrowDown') {
            e.preventDefault();
            const next = e.target.nextSibling;
            if (next) {
              next.focus();
            }
          }
          if (e.key === 'ArrowUp') {
            e.preventDefault();
            const previous = e.taget.previousSibling;
            if (previous) {
              previous.focus();
            }
          }
        }}
        {...rest}
      >
        `${suggestion.Text} ${suggestion.Description}`
      </li>
    ),
  }}
  classes={{ Input: classes.input }}
/>;

Errors

Two types of errors can be thrown, LoqateError and ReactLoqateError. Loqate Errors are errors from the Loqate API. Their structure, causes and resolutions can be found in the loqate docs.

Currently only one ReactLoqateError can be thrown. This error occurs when the Retrieve API returns an empty Items array after querying it with an existing ID.

It is on you as the implementing party to catch and handle these errors.

Contributing

This codebases use @changesets for release and version management

  • Create a feature branch with new features / fixes
  • When your code changes are complete, add a changeset file to your feature branch using pnpm changeset
  • Create a PR to request your changes to be merged to main
  • After your PR is merged, GitHub actions will create a release PR or add your changeset to an existing release PR
  • When the release is ready merge the release branch. A new version will automatically be released.

Keywords

FAQs

Package last updated on 11 Jun 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc