@wix/design-system
Version:
@wix/design-system
64 lines (60 loc) • 1.7 kB
TypeScript
import * as React from 'react';
import { InputProps } from '../Input';
import { GoogleMapsClient } from '../clients';
type Address = {
formatted: string;
formattedStreetAddress: string;
latLng: {
lat: string;
lng: string;
};
approximate: boolean;
city?: string;
state?: string;
country?: string;
countryCode?: string;
street?: string;
number?: string;
postalCode?: string;
subpremise?: string;
};
export interface GoogleAddressInputProps
extends Omit<
InputProps,
'onChange' | 'onBlur' | 'onFocus' | 'onKeyDown' | 'onKeyUp' | 'onPaste'
> {
placeholder?: string;
valuePrefix?: string;
countryCode?: string;
value?: string;
status?: InputProps['status'];
statusMessage?: InputProps['statusMessage'];
onChange?: React.ChangeEventHandler<HTMLInputElement>;
onBlur?: React.FocusEventHandler<HTMLInputElement>;
onFocus?: React.FocusEventHandler<HTMLInputElement>;
onKeyDown?: React.KeyboardEventHandler<HTMLInputElement>;
onKeyUp?: React.KeyboardEventHandler<HTMLInputElement>;
onPaste?: React.ClipboardEventHandler<HTMLInputElement>;
onSet?: (params: {
originValue: string;
googleResult: any;
address: Address;
}) => void;
magnifyingGlass?: boolean;
readOnly?: boolean;
autoSelect?: boolean;
clearSuggestionsOnBlur?: boolean;
fallbackToManual?: boolean;
poweredByGoogle?: boolean;
footer?: string;
types?: any[];
filterTypes?: any[];
placeDetailsFields?: any[];
footerOptions?: object;
handler?: 'geocode' | 'places';
Client: new () => GoogleMapsClient;
}
export default class GoogleAddressInput extends React.Component<GoogleAddressInputProps> {
select: () => void;
focus: () => void;
}