react-addressfinder
TypeScript icon, indicating that this package has built-in type declarations

0.4.3 • Public • Published

React Component for AddressFinder

This is a react wrapper component for AddressFinder's widget.

Getting started

Setup

Include the widget script manually

<script
  type="text/javascript"
  src="https://api.addressfinder.io/assets/v3/widget.js"
  async
></script>

or the component will load the library for you if not found under the window object.

Install

yarn add react-addressfinder

Using the component

import React from 'react';

interface Props extends HTMLInputElement {
  addressFinderKey: string
  inputClassName?: string
  id: string
}

const component = ({
  addressFinderKey,
  inputClassName,
  id,
  ...props
}: Props) =>
  <WidgetInput
    addressFinderKey={addressFinderKey}
    inputClassName={inputClassName}
    id={id}
    onSelected={(fullAddress: string, address: Address) => {
      /* callback function to set full address and input value */
    }}
    {...props}
  />

Component props

Prop Type Required Default
id string yes
addressFinderKey string yes
onSelected function yes
country string no AU
container HtmlElement no div with id address-container-${id}
inputClassName string no ''
listClassName string no address-autocomplete__suggestions
itemClassName string no address-autocomplete__suggestions__item
hoverClassName string no address-autocomplete__suggestions__item--active
raw boolean no false
addressParams Record no

Address param options can be found here

Prop: container

The container where suggestion list will be docked inside. If not provided, the list sits directly inside a div under the input.

Prop: onSelected

Signature of the onSelect function is

(fullAddress: string, address: Address) => void;

Example

import React from 'react';
import { WidgetInput, Address } from 'react-addressfinder';
import { FieldProps } from 'formik';
import configs from 'src/configuration';

interface Props extends FieldProps {
  id: string;
  suffix: string;
}

export default ({
  id,
  suffix,
  field,
  form: { touched, errors, setFieldValue },
  ...props
}: Props) => {
  const { name, onChange, ...otherfields } = field;

  const fieldClassName = `form-control${touched[name] && errors[name] ? ' is-invalid' : ''}`;

  return (
    <WidgetInput
      addressFinderKey={configs.AddressFinderKey}
      inputClassName={fieldClassName}
      id={id}
      name={name}
      onSelected={(fullAddress: string, address: Address) => {
        setFieldValue(id, fullAddress);
        setFieldValue(`${id}${suffix}`, address);
      }}
      onChange={(e: React.ChangeEvent<HTMLInputElement>) => {
        /* make sure a valid address was selected from the list */
        setFieldValue(`${id}${suffix}`, null);
        onChange(e);
      }}
      {...otherfields}
      {...props}
    />
  );
};


Find out more details in official docs

/react-addressfinder/

    Package Sidebar

    Install

    npm i react-addressfinder

    Weekly Downloads

    445

    Version

    0.4.3

    License

    MIT

    Unpacked Size

    24.7 kB

    Total Files

    28

    Last publish

    Collaborators

    • asthajaiswal99
    • torihamiltonprospa
    • lorenzoparas-prospa
    • marktran_prospa
    • dst.chen
    • minhprospa
    • brett.gough
    • abby.rahimi
    • luizbon-prospa
    • vswami
    • cynthia3r
    • nwiranata
    • kenny-prospa
    • albertprospa
    • charles-prospa
    • laughingkids-prospa
    • niancheng.lyu
    • subodh-prospa
    • hunglhv
    • josh-bradley
    • vladverbin
    • donna.quayle.prospa
    • kengjin.chew
    • sam.walsh.prospa
    • ivan.xue
    • aleksandr.shtykov
    • prospa-tech
    • miymiy
    • shashank_11