UNPKG

places-autocomplete-hook

Version:
75 lines (72 loc) 2.07 kB
interface PlacePrediction { place: string; placeId: string; text: { text: string; matches: Array<{ endOffset: number; }>; }; structuredFormat: { mainText: { text: string; matches: Array<{ endOffset: number; }>; }; secondaryText: { text: string; }; }; types: string[]; } interface AddressComponent { longText: string; shortText: string; types: string[]; } interface PlaceDetails { placeId: string; formattedAddress: string; addressComponents: AddressComponent[]; location: { latitude: number; longitude: number; }; streetNumber?: string; streetName?: string; city?: string; state?: string; country?: string; postalCode?: string; } interface UsePlacesAutocompleteOptions { apiKey: string; debounceMs?: number; language?: string; types?: string[]; sessionToken?: string; location?: { lat: number; lng: number; radius?: number; }; /** Callback that is called when a place is selected, providing the place ID */ setSelectedPlace?: (placeId: string) => void; } interface UsePlacesAutocompleteResult { value: string; suggestions: { status: 'OK' | 'ZERO_RESULTS' | 'ERROR' | 'LOADING'; data: PlacePrediction[]; }; setValue: (value: string, shouldFetchData?: boolean) => void; clearSuggestions: () => void; search: (input: string) => Promise<void>; loading: boolean; error: Error | null; getPlaceDetails: (placeId: string) => Promise<PlaceDetails>; handlePlaceSelect: (placeId: string) => Promise<void>; } declare function usePlacesAutocomplete({ apiKey, debounceMs, language, types, sessionToken, location, setSelectedPlace, }: UsePlacesAutocompleteOptions): UsePlacesAutocompleteResult; export { type PlaceDetails, type PlacePrediction, type UsePlacesAutocompleteOptions, type UsePlacesAutocompleteResult, usePlacesAutocomplete };