@maplibre/maplibre-react-native 10.0.0-alpha.7 → 10.0.0-alpha.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/README.md +1 -1
- package/android/build.gradle +1 -1
- package/android/rctmln/build.gradle +5 -5
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/annotation/MarkerView.java +2 -2
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/annotation/MarkerViewManager.java +6 -6
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNMarkerView.java +5 -5
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNPointAnnotation.java +9 -8
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/camera/CameraStop.java +14 -12
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/camera/CameraUpdateItem.java +10 -10
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/camera/CameraUpdateQueue.java +1 -1
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/camera/RCTMLNCamera.java +26 -26
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/camera/RCTMLNCameraManager.java +1 -1
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/images/RCTMLNImages.java +12 -12
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/location/LocationComponentManager.java +9 -9
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/location/RCTMLNNativeUserLocation.java +7 -7
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/location/RCTMLNNativeUserLocationManager.java +1 -1
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/mapview/LayerSourceInfo.java +9 -9
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/mapview/RCTMLNAndroidTextureMapView.java +2 -2
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/mapview/RCTMLNAndroidTextureMapViewManager.java +2 -2
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/mapview/RCTMLNMapView.java +43 -43
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/mapview/RCTMLNMapViewManager.java +6 -6
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyle.java +3 -3
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyleFactory.java +14 -14
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyleFunctionParser.java +2 -2
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyleValue.java +2 -2
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTLayer.java +8 -8
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNBackgroundLayer.java +1 -1
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNCircleLayer.java +2 -2
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillExtrusionLayer.java +2 -2
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillLayer.java +2 -2
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNHeatmapLayer.java +2 -2
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNLineLayer.java +2 -2
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNRasterLayer.java +1 -1
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNSymbolLayer.java +2 -2
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/light/RCTMLNLight.java +6 -6
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNImageSource.java +3 -3
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNImageSourceManager.java +1 -1
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNRasterSource.java +3 -3
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNShapeSource.java +9 -9
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNShapeSourceManager.java +1 -1
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNTileSource.java +2 -2
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNVectorSource.java +4 -4
- package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTSource.java +7 -7
- package/android/rctmln/src/main/java/com/maplibre/rctmln/events/FeatureClickEvent.java +2 -2
- package/android/rctmln/src/main/java/com/maplibre/rctmln/events/MapClickEvent.java +1 -1
- package/android/rctmln/src/main/java/com/maplibre/rctmln/events/PointAnnotationClickEvent.java +2 -2
- package/android/rctmln/src/main/java/com/maplibre/rctmln/events/PointAnnotationDragEvent.java +2 -2
- package/android/rctmln/src/main/java/com/maplibre/rctmln/location/LocationManager.java +6 -6
- package/android/rctmln/src/main/java/com/maplibre/rctmln/location/UserLocation.java +1 -1
- package/android/rctmln/src/main/java/com/maplibre/rctmln/location/UserTrackingMode.java +3 -3
- package/android/rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNLocationModule.java +2 -2
- package/android/rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNLogging.java +2 -2
- package/android/rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNModule.java +8 -8
- package/android/rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNOfflineModule.java +11 -11
- package/android/rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNSnapshotModule.java +7 -7
- package/android/rctmln/src/main/java/com/maplibre/rctmln/utils/ClusterPropertyEntry.java +1 -1
- package/android/rctmln/src/main/java/com/maplibre/rctmln/utils/DownloadMapImageTask.java +5 -5
- package/android/rctmln/src/main/java/com/maplibre/rctmln/utils/ExpressionParser.java +2 -2
- package/android/rctmln/src/main/java/com/maplibre/rctmln/utils/GeoJSONUtils.java +13 -13
- package/android/rctmln/src/main/java/com/maplibre/rctmln/utils/GeoViewport.java +3 -3
- package/android/rctmln/src/main/java/com/maplibre/rctmln/utils/SimpleEventCallback.java +2 -2
- package/android/rctmln/src/main/java/com/maplibre/rctmln/utils/SphericalMercator.java +1 -1
- package/docs/Camera.md +1 -1
- package/docs/MapView.md +9 -9
- package/docs/MarkerView.md +1 -1
- package/docs/NativeUserLocation.md +1 -1
- package/docs/PointAnnotation.md +2 -2
- package/docs/UserLocation.md +2 -2
- package/docs/docs.json +12 -12
- package/javascript/@types/assets.d.ts +1 -1
- package/javascript/MLNModule.ts +2 -2
- package/javascript/Maplibre.ts +37 -42
- package/javascript/components/BackgroundLayer.tsx +9 -9
- package/javascript/components/Callout.tsx +19 -19
- package/javascript/components/Camera.tsx +29 -29
- package/javascript/components/CircleLayer.tsx +9 -9
- package/javascript/components/FillExtrusionLayer.tsx +9 -9
- package/javascript/components/FillLayer.tsx +9 -9
- package/javascript/components/HeadingIndicator.tsx +7 -8
- package/javascript/components/HeatmapLayer.tsx +10 -10
- package/javascript/components/ImageSource.tsx +8 -8
- package/javascript/components/Images.tsx +19 -20
- package/javascript/components/Light.tsx +15 -15
- package/javascript/components/LineLayer.tsx +9 -9
- package/javascript/components/MapView.tsx +74 -70
- package/javascript/components/MarkerView.tsx +9 -10
- package/javascript/components/NativeUserLocation.tsx +4 -4
- package/javascript/components/PointAnnotation.tsx +17 -17
- package/javascript/components/RasterLayer.tsx +9 -9
- package/javascript/components/RasterSource.tsx +10 -10
- package/javascript/components/ShapeSource.tsx +63 -61
- package/javascript/components/Style.tsx +69 -59
- package/javascript/components/SymbolLayer.tsx +10 -10
- package/javascript/components/UserLocation.tsx +23 -23
- package/javascript/components/VectorSource.tsx +19 -19
- package/javascript/components/annotations/Annotation.tsx +16 -15
- package/javascript/hooks/useAbstractLayer.ts +15 -12
- package/javascript/hooks/useAbstractSource.ts +2 -2
- package/javascript/hooks/useNativeBridge.ts +7 -7
- package/javascript/hooks/useNativeRef.ts +2 -2
- package/javascript/hooks/useOnce.ts +1 -1
- package/javascript/index.ts +2 -2
- package/javascript/modules/location/locationManager.ts +4 -4
- package/javascript/modules/offline/OfflineCreatePackOptions.ts +5 -5
- package/javascript/modules/offline/OfflinePack.ts +3 -3
- package/javascript/modules/offline/offlineManager.ts +11 -12
- package/javascript/modules/snapshot/SnapshotOptions.ts +4 -4
- package/javascript/modules/snapshot/snapshotManager.ts +2 -2
- package/javascript/requestAndroidLocationPermissions.ts +3 -3
- package/javascript/types/OnPressEvent.ts +1 -1
- package/javascript/types/index.ts +6 -2
- package/javascript/utils/BridgeValue.ts +20 -20
- package/javascript/utils/Logger.ts +14 -14
- package/javascript/utils/MaplibreStyles.d.ts +359 -359
- package/javascript/utils/StyleValue.ts +12 -12
- package/javascript/utils/animated/AbstractAnimatedCoordinates.ts +6 -6
- package/javascript/utils/animated/Animated.ts +38 -16
- package/javascript/utils/animated/AnimatedCoordinatesArray.ts +7 -11
- package/javascript/utils/animated/AnimatedExtractCoordinateFromArray.ts +3 -3
- package/javascript/utils/animated/AnimatedPoint.ts +7 -7
- package/javascript/utils/animated/AnimatedRouteCoordinatesArray.ts +16 -20
- package/javascript/utils/animated/AnimatedShape.ts +15 -15
- package/javascript/utils/deprecation.ts +6 -3
- package/javascript/utils/filterUtils.ts +1 -1
- package/javascript/utils/geoUtils.ts +8 -8
- package/javascript/utils/index.ts +14 -14
- package/javascript/utils/styleMap.ts +18 -18
- package/package.json +28 -15
- package/plugin/build/withMapLibre.d.ts +2 -2
- package/plugin/build/withMapLibre.js +24 -24
- package/scripts/autogenerate.js +1 -1
- package/scripts/templates/RCTMLNStyleFactory.java.ejs +14 -14
- package/.eslintignore +0 -3
- package/.eslintrc.js +0 -169
- package/.prettierrc.js +0 -7
- package/.yarn/sdks/eslint/bin/eslint.js +0 -27
- package/.yarn/sdks/eslint/lib/api.js +0 -27
- package/.yarn/sdks/eslint/lib/unsupported-api.js +0 -27
- package/.yarn/sdks/eslint/package.json +0 -14
- package/.yarn/sdks/integrations.yml +0 -5
- package/.yarn/sdks/prettier/bin/prettier.cjs +0 -27
- package/.yarn/sdks/prettier/index.cjs +0 -27
- package/.yarn/sdks/prettier/package.json +0 -7
- package/.yarn/sdks/typescript/bin/tsc +0 -27
- package/.yarn/sdks/typescript/bin/tsserver +0 -27
- package/.yarn/sdks/typescript/lib/tsc.js +0 -27
- package/.yarn/sdks/typescript/lib/tsserver.js +0 -239
- package/.yarn/sdks/typescript/lib/tsserverlibrary.js +0 -239
- package/.yarn/sdks/typescript/lib/typescript.js +0 -27
- package/.yarn/sdks/typescript/package.json +0 -10
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import React, { Component, SyntheticEvent, useRef } from "react";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import { runNativeCommand, isAndroid, NativeArg } from "../utils";
|
|
4
4
|
|
|
5
|
-
export type RNMLEvent<PayloadType = {[key: string]: string}> = {
|
|
5
|
+
export type RNMLEvent<PayloadType = { [key: string]: string }> = {
|
|
6
6
|
payload: PayloadType;
|
|
7
7
|
type: string;
|
|
8
8
|
};
|
|
@@ -41,7 +41,7 @@ const useNativeBridge: (moduleName: string) => UseNativeBridge = (
|
|
|
41
41
|
resolve: (value: ReturnType) => void,
|
|
42
42
|
reject: (error: Error) => void,
|
|
43
43
|
): void => {
|
|
44
|
-
_callbackMap.current.set(id, {resolve, reject});
|
|
44
|
+
_callbackMap.current.set(id, { resolve, reject });
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
const _removeAndroidCallback = (id: string): void => {
|
|
@@ -57,7 +57,7 @@ const useNativeBridge: (moduleName: string) => UseNativeBridge = (
|
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
_callbackMap.current.delete(callbackID);
|
|
60
|
-
const {payload} = e.nativeEvent;
|
|
60
|
+
const { payload } = e.nativeEvent;
|
|
61
61
|
if (payload.error) {
|
|
62
62
|
callback.reject.call(null, new Error(payload.error));
|
|
63
63
|
} else {
|
|
@@ -90,9 +90,9 @@ const useNativeBridge: (moduleName: string) => UseNativeBridge = (
|
|
|
90
90
|
args: NativeArg[] = [],
|
|
91
91
|
): Promise<ReturnType> => {
|
|
92
92
|
if (!nativeRef) {
|
|
93
|
-
return new Promise(resolve => {
|
|
93
|
+
return new Promise((resolve) => {
|
|
94
94
|
_preRefMapMethodQueue.current.push({
|
|
95
|
-
method: {name: methodName, args},
|
|
95
|
+
method: { name: methodName, args },
|
|
96
96
|
resolver: resolve,
|
|
97
97
|
});
|
|
98
98
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React, {Component, useRef} from
|
|
2
|
-
import {NativeMethods} from
|
|
1
|
+
import React, { Component, useRef } from "react";
|
|
2
|
+
import { NativeMethods } from "react-native";
|
|
3
3
|
|
|
4
4
|
type NativeRef<NativeProps> = Component<NativeProps> & Readonly<NativeMethods>;
|
|
5
5
|
|
package/javascript/index.ts
CHANGED
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
NativeModules,
|
|
3
3
|
NativeEventEmitter,
|
|
4
4
|
EmitterSubscription,
|
|
5
|
-
} from
|
|
5
|
+
} from "react-native";
|
|
6
6
|
|
|
7
7
|
const MapLibreGL = NativeModules.MLNModule;
|
|
8
8
|
const MapLibreGLLocationManager = NativeModules.MLNLocationModule;
|
|
@@ -89,7 +89,7 @@ class LocationManager {
|
|
|
89
89
|
lastKnownLocation =
|
|
90
90
|
await MapLibreGLLocationManager.getLastKnownLocation();
|
|
91
91
|
} catch (error) {
|
|
92
|
-
console.log(
|
|
92
|
+
console.log("locationManager Error: ", error);
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
if (!this._lastKnownLocation && lastKnownLocation) {
|
|
@@ -114,7 +114,7 @@ class LocationManager {
|
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
removeListener(listener: (location: Location) => void): void {
|
|
117
|
-
this._listeners = this._listeners.filter(l => l !== listener);
|
|
117
|
+
this._listeners = this._listeners.filter((l) => l !== listener);
|
|
118
118
|
if (this._listeners.length === 0) {
|
|
119
119
|
this.stop();
|
|
120
120
|
}
|
|
@@ -155,7 +155,7 @@ class LocationManager {
|
|
|
155
155
|
onUpdate(location: Location): void {
|
|
156
156
|
this._lastKnownLocation = location;
|
|
157
157
|
|
|
158
|
-
this._listeners.forEach(l => l(location));
|
|
158
|
+
this._listeners.forEach((l) => l(location));
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { toJSONString } from "../../utils";
|
|
2
|
+
import { makeLatLngBounds } from "../../utils/geoUtils";
|
|
3
3
|
|
|
4
4
|
export interface OfflineCreatePackInputOptions {
|
|
5
5
|
name: string;
|
|
@@ -32,16 +32,16 @@ class OfflineCreatePackOptions {
|
|
|
32
32
|
_assert(options: OfflineCreatePackInputOptions): void {
|
|
33
33
|
if (!options.styleURL) {
|
|
34
34
|
throw new Error(
|
|
35
|
-
|
|
35
|
+
"Style URL must be provided for creating an offline pack",
|
|
36
36
|
);
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
if (!options.name) {
|
|
40
|
-
throw new Error(
|
|
40
|
+
throw new Error("Name must be provided for creating an offline pack");
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
if (!options.bounds) {
|
|
44
|
-
throw new Error(
|
|
44
|
+
throw new Error("Bounds must be provided for creating an offline pack");
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { NativeModules } from "react-native";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import OfflineCreatePackOptions from "./OfflineCreatePackOptions";
|
|
4
4
|
|
|
5
5
|
const MapLibreGLOfflineManager = NativeModules.MLNOfflineModule;
|
|
6
6
|
|
|
@@ -25,7 +25,7 @@ class OfflinePack {
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
get name(): string | null {
|
|
28
|
-
const {metadata} = this;
|
|
28
|
+
const { metadata } = this;
|
|
29
29
|
return metadata && metadata.name;
|
|
30
30
|
}
|
|
31
31
|
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import {isUndefined, isFunction, isAndroid} from '../../utils';
|
|
2
|
-
|
|
3
|
-
import OfflineCreatePackOptions, {
|
|
4
|
-
OfflineCreatePackInputOptions,
|
|
5
|
-
} from './OfflineCreatePackOptions';
|
|
6
|
-
import OfflinePack from './OfflinePack';
|
|
7
|
-
|
|
8
1
|
import {
|
|
9
2
|
NativeModules,
|
|
10
3
|
NativeEventEmitter,
|
|
11
4
|
EventSubscription,
|
|
12
|
-
} from
|
|
5
|
+
} from "react-native";
|
|
6
|
+
|
|
7
|
+
import OfflineCreatePackOptions, {
|
|
8
|
+
OfflineCreatePackInputOptions,
|
|
9
|
+
} from "./OfflineCreatePackOptions";
|
|
10
|
+
import OfflinePack from "./OfflinePack";
|
|
11
|
+
import { isUndefined, isFunction, isAndroid } from "../../utils";
|
|
13
12
|
|
|
14
13
|
const MapLibreGL = NativeModules.MLNModule;
|
|
15
14
|
const MapLibreGLOfflineManager = NativeModules.MLNOfflineModule;
|
|
@@ -232,7 +231,7 @@ class OfflineManager {
|
|
|
232
231
|
async getPacks(): Promise<OfflinePack[]> {
|
|
233
232
|
await this._initialize();
|
|
234
233
|
return Object.keys(this._offlinePacks).map(
|
|
235
|
-
name => this._offlinePacks[name],
|
|
234
|
+
(name) => this._offlinePacks[name],
|
|
236
235
|
);
|
|
237
236
|
}
|
|
238
237
|
|
|
@@ -340,7 +339,7 @@ class OfflineManager {
|
|
|
340
339
|
// manually set a listener, since listeners are only set on create flow
|
|
341
340
|
await MapLibreGLOfflineManager.setPackObserver(packName);
|
|
342
341
|
} catch (e) {
|
|
343
|
-
console.log(
|
|
342
|
+
console.log("Unable to set pack observer", e);
|
|
344
343
|
}
|
|
345
344
|
}
|
|
346
345
|
}
|
|
@@ -393,7 +392,7 @@ class OfflineManager {
|
|
|
393
392
|
}
|
|
394
393
|
|
|
395
394
|
_onProgress(e: ProgressEvent): void {
|
|
396
|
-
const {name, state} = e.payload;
|
|
395
|
+
const { name, state } = e.payload;
|
|
397
396
|
|
|
398
397
|
if (!this._hasListeners(name, this._progressListeners)) {
|
|
399
398
|
return;
|
|
@@ -409,7 +408,7 @@ class OfflineManager {
|
|
|
409
408
|
}
|
|
410
409
|
|
|
411
410
|
_onError(e: ErrorEvent): void {
|
|
412
|
-
const {name} = e.payload;
|
|
411
|
+
const { name } = e.payload;
|
|
413
412
|
|
|
414
413
|
if (!this._hasListeners(name, this._errorListeners)) {
|
|
415
414
|
return;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {makePoint, makeFeatureCollection} from '../../utils/geoUtils';
|
|
1
|
+
import { NativeModules } from "react-native";
|
|
3
2
|
|
|
4
|
-
import {
|
|
3
|
+
import { toJSONString } from "../../utils";
|
|
4
|
+
import { makePoint, makeFeatureCollection } from "../../utils/geoUtils";
|
|
5
5
|
|
|
6
6
|
const MapLibreGL = NativeModules.MLNModule;
|
|
7
7
|
|
|
@@ -46,7 +46,7 @@ export class SnapshotOptions {
|
|
|
46
46
|
constructor(options: SnapshotInputOptions) {
|
|
47
47
|
if (!options.centerCoordinate && !options.bounds) {
|
|
48
48
|
throw new Error(
|
|
49
|
-
|
|
49
|
+
"Center coordinate or bounds must be supplied in order to take a snapshot",
|
|
50
50
|
);
|
|
51
51
|
}
|
|
52
52
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { NativeModules } from "react-native";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import SnapshotOptions, { SnapshotInputOptions } from "./SnapshotOptions";
|
|
4
4
|
|
|
5
5
|
const MapLibreGLSnapshotManger = NativeModules.MLNSnapshotModule;
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Permission, PermissionsAndroid } from "react-native";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { isAndroid } from "./utils";
|
|
4
4
|
|
|
5
5
|
export async function requestAndroidLocationPermissions(): Promise<boolean> {
|
|
6
6
|
if (isAndroid()) {
|
|
@@ -25,5 +25,5 @@ export async function requestAndroidLocationPermissions(): Promise<boolean> {
|
|
|
25
25
|
return false;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
throw new Error(
|
|
28
|
+
throw new Error("You should only call this method on Android!");
|
|
29
29
|
}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import {SyntheticEvent} from
|
|
1
|
+
import { SyntheticEvent } from "react";
|
|
2
2
|
|
|
3
3
|
export type MaplibreGLEvent<
|
|
4
4
|
T extends string,
|
|
5
5
|
P = GeoJSON.Feature,
|
|
6
6
|
V = Element,
|
|
7
|
-
> = SyntheticEvent<V, {type: T; payload: P}>;
|
|
7
|
+
> = SyntheticEvent<V, { type: T; payload: P }>;
|
|
8
|
+
|
|
9
|
+
export enum StyleURL {
|
|
10
|
+
Default = "https://demotiles.maplibre.org/style.json",
|
|
11
|
+
}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import {isBoolean, isNumber, isString} from
|
|
1
|
+
import { isBoolean, isNumber, isString } from "./index";
|
|
2
2
|
|
|
3
3
|
export type RawValueType =
|
|
4
4
|
| string
|
|
5
5
|
| number
|
|
6
6
|
| boolean
|
|
7
7
|
| RawValueType[]
|
|
8
|
-
| {[key: string]: RawValueType};
|
|
8
|
+
| { [key: string]: RawValueType };
|
|
9
9
|
|
|
10
10
|
export type StyleValueJSON =
|
|
11
|
-
| {type:
|
|
12
|
-
| {type:
|
|
13
|
-
| {type:
|
|
14
|
-
| {type:
|
|
15
|
-
| {type:
|
|
11
|
+
| { type: "boolean"; value: boolean }
|
|
12
|
+
| { type: "number"; value: number }
|
|
13
|
+
| { type: "string"; value: string }
|
|
14
|
+
| { type: "hashmap"; value: object }
|
|
15
|
+
| { type: "array"; value: unknown[] };
|
|
16
16
|
|
|
17
|
-
type StyleValueTypes =
|
|
17
|
+
type StyleValueTypes = "boolean" | "number" | "string" | "hashmap" | "array";
|
|
18
18
|
|
|
19
19
|
export default class BridgeValue {
|
|
20
20
|
rawValue: RawValueType;
|
|
@@ -25,19 +25,19 @@ export default class BridgeValue {
|
|
|
25
25
|
|
|
26
26
|
get type(): StyleValueTypes {
|
|
27
27
|
if (Array.isArray(this.rawValue)) {
|
|
28
|
-
return
|
|
28
|
+
return "array";
|
|
29
29
|
}
|
|
30
30
|
if (isBoolean(this.rawValue)) {
|
|
31
|
-
return
|
|
31
|
+
return "boolean";
|
|
32
32
|
}
|
|
33
33
|
if (isNumber(this.rawValue)) {
|
|
34
|
-
return
|
|
34
|
+
return "number";
|
|
35
35
|
}
|
|
36
36
|
if (isString(this.rawValue)) {
|
|
37
|
-
return
|
|
37
|
+
return "string";
|
|
38
38
|
}
|
|
39
|
-
if (this.rawValue && typeof this.rawValue ===
|
|
40
|
-
return
|
|
39
|
+
if (this.rawValue && typeof this.rawValue === "object") {
|
|
40
|
+
return "hashmap";
|
|
41
41
|
}
|
|
42
42
|
throw new Error(
|
|
43
43
|
`[type - ${this.rawValue}] BridgeValue must be a primitive/array/object`,
|
|
@@ -48,20 +48,20 @@ export default class BridgeValue {
|
|
|
48
48
|
| [StyleValueJSON, StyleValueJSON][]
|
|
49
49
|
| StyleValueJSON[]
|
|
50
50
|
| RawValueType {
|
|
51
|
-
const {type} = this;
|
|
51
|
+
const { type } = this;
|
|
52
52
|
|
|
53
53
|
let value;
|
|
54
54
|
|
|
55
|
-
if (type ===
|
|
55
|
+
if (type === "array") {
|
|
56
56
|
value = [];
|
|
57
57
|
|
|
58
58
|
for (const innerRawValue of this.rawValue as RawValueType[]) {
|
|
59
59
|
const bridgeValue = new BridgeValue(innerRawValue);
|
|
60
60
|
value.push(bridgeValue.toJSON());
|
|
61
61
|
}
|
|
62
|
-
} else if (type ===
|
|
62
|
+
} else if (type === "hashmap") {
|
|
63
63
|
value = [];
|
|
64
|
-
const rawValue = this.rawValue as {[key: string]: RawValueType};
|
|
64
|
+
const rawValue = this.rawValue as { [key: string]: RawValueType };
|
|
65
65
|
const stringKeys = Object.keys(this.rawValue);
|
|
66
66
|
for (const stringKey of stringKeys) {
|
|
67
67
|
value.push([
|
|
@@ -69,7 +69,7 @@ export default class BridgeValue {
|
|
|
69
69
|
new BridgeValue(rawValue[stringKey]).toJSON(),
|
|
70
70
|
] as [StyleValueJSON, StyleValueJSON]);
|
|
71
71
|
}
|
|
72
|
-
} else if (type ===
|
|
72
|
+
} else if (type === "boolean" || type === "number" || type === "string") {
|
|
73
73
|
value = this.rawValue;
|
|
74
74
|
} else {
|
|
75
75
|
throw new Error(
|
|
@@ -84,7 +84,7 @@ export default class BridgeValue {
|
|
|
84
84
|
return {
|
|
85
85
|
type: this.type,
|
|
86
86
|
value:
|
|
87
|
-
typeof formatter ===
|
|
87
|
+
typeof formatter === "function" ? formatter(this.value) : this.value,
|
|
88
88
|
} as StyleValueJSON;
|
|
89
89
|
}
|
|
90
90
|
}
|
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
EmitterSubscription,
|
|
3
3
|
NativeEventEmitter,
|
|
4
4
|
NativeModules,
|
|
5
|
-
} from
|
|
6
|
-
const {MLNLogging} = NativeModules;
|
|
5
|
+
} from "react-native";
|
|
6
|
+
const { MLNLogging } = NativeModules;
|
|
7
7
|
|
|
8
|
-
export type LogLevel =
|
|
8
|
+
export type LogLevel = "error" | "warning" | "info" | "debug" | "verbose";
|
|
9
9
|
interface Log {
|
|
10
10
|
message: string;
|
|
11
11
|
level: LogLevel;
|
|
@@ -90,7 +90,7 @@ class Logger {
|
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
subscribe(): void {
|
|
93
|
-
this.subscription = this.loggerEmitter.addListener(
|
|
93
|
+
this.subscription = this.loggerEmitter.addListener("LogEvent", (log) => {
|
|
94
94
|
this.onLog(log);
|
|
95
95
|
});
|
|
96
96
|
}
|
|
@@ -102,14 +102,14 @@ class Logger {
|
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
effectiveLevel({level, message, tag}: Log): LogLevel {
|
|
106
|
-
if (level ===
|
|
105
|
+
effectiveLevel({ level, message, tag }: Log): LogLevel {
|
|
106
|
+
if (level === "warning") {
|
|
107
107
|
if (
|
|
108
|
-
tag ===
|
|
109
|
-
message.startsWith(
|
|
108
|
+
tag === "Mbgl-HttpRequest" &&
|
|
109
|
+
message.startsWith("Request failed due to a permanent error: Canceled")
|
|
110
110
|
) {
|
|
111
111
|
// this seems to happening too much to show a warning every time
|
|
112
|
-
return
|
|
112
|
+
return "info";
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
115
|
return level;
|
|
@@ -117,12 +117,12 @@ class Logger {
|
|
|
117
117
|
|
|
118
118
|
onLog(log: Log): void {
|
|
119
119
|
if (!this.logCallback || !this.logCallback(log)) {
|
|
120
|
-
const {message} = log;
|
|
120
|
+
const { message } = log;
|
|
121
121
|
const level = this.effectiveLevel(log);
|
|
122
|
-
if (level ===
|
|
123
|
-
console.error(
|
|
124
|
-
} else if (level ===
|
|
125
|
-
console.warn(
|
|
122
|
+
if (level === "error") {
|
|
123
|
+
console.error("MapLibre error", message, log);
|
|
124
|
+
} else if (level === "warning") {
|
|
125
|
+
console.warn("MapLibre warning", message, log);
|
|
126
126
|
} else {
|
|
127
127
|
console.log(`MapLibre [${level}]`, message, log);
|
|
128
128
|
}
|