UNPKG

react-native-anavi

Version:

react native amap navigation component, Android + iOS

70 lines (57 loc) 1.92 kB
import { number, func, shape, string, oneOfType, oneOf, bool, object, arrayOf } from 'prop-types'; export const LatLngPropType = shape({ latitude: number.isRequired, longitude: number.isRequired, }); export const NaviLatLngPropType = shape({ latitude: number.isRequired, longitude: number.isRequired, }); export const NaviPoiPropType = shape({ name: string.isRequired, coordinate: LatLngPropType.isRequired, poiId: string.isRequired, direction: number, }); export const DriveNaviPointPropType = oneOfType([ string.isRequired, NaviLatLngPropType.isRequired, NaviPoiPropType.isRequired, arrayOf(string), arrayOf(NaviLatLngPropType), arrayOf(NaviPoiPropType), ]); export const RideNaviPointPropType = oneOfType([NaviLatLngPropType.isRequired, NaviPoiPropType.isRequired]); export const WalkNaviPointPropType = oneOfType([ NaviLatLngPropType.isRequired, NaviPoiPropType.isRequired, arrayOf(NaviLatLngPropType).isRequired, ]); export const NaviShowModePropType = oneOf([1, 2, 3]); export const NaviTrackingModePropType = oneOf([0, 1]); export const RegionPropType = shape({ latitude: number.isRequired, longitude: number.isRequired, latitudeDelta: number.isRequired, longitudeDelta: number.isRequired, }); export const PointPropType = shape({ x: number.isRequired, y: number.isRequired, }); export const LocationStylePropType = shape({ image: oneOfType([object, number]), fillColor: string, strokeColor: string, strokeWidth: number, locationDotBgColor: string, locationDotFillColor: string, enablePulseAnnimation: bool, showsHeadingIndicator: bool, showsAccuracyRing: bool, }); export const mapEventsPropType = (events: string[]) => events.reduce((props: { [key: string]: Function }, event) => { props[event.replace(/^on/, 'onAMap')] = func; return props; }, {});