UNPKG

react-native-yamap-plus

Version:

Yandex MapKit for React Native

47 lines (38 loc) 1.08 kB
import NativeSuggestModule, {SuggestOptions, YamapSuggest} from '../spec/NativeSuggestsModule'; import {Point} from '../interfaces'; const suggest = (query: string, options?: SuggestOptions) => { if (options) { return NativeSuggestModule.suggestWithOptions(query, options); } return NativeSuggestModule.suggest(query); }; const suggestWithCoords = async (query: string, options?: SuggestOptions) => { const suggests = await suggest(query, options); return suggests.map((item) => ({ ...item, ...getCoordsFromSuggest(item), })); }; const getCoordsFromSuggest = (yamapSuggest: YamapSuggest): Point | undefined => { const coords = yamapSuggest.uri ?.toString() ?.split('?')[1] ?.split('&') ?.find((param) => param.startsWith('ll')) ?.toString() ?.split('=')[1]; if (!coords) { return; } const coordsArr = coords.split('%2C'); return { lat: +coordsArr[1], lon: +coordsArr[0], }; }; export const Suggest = { suggest, suggestWithCoords, reset: NativeSuggestModule.reset, getCoordsFromSuggest, };