react-native-mapsforge-vtm
Version:
React Native components to build vector maps using Mapsforges fork of vtm. Offline rendering of OpenStreetMap data. Android only
41 lines (39 loc) • 1.13 kB
JavaScript
;
/**
* External dependencies
*/
import { useEffect, useState } from 'react';
import { NativeModules, NativeEventEmitter } from 'react-native';
/**
* Internal dependencies
*/
const {
MapContainerModule
} = NativeModules;
const useMapLayersCreated = (nativeNodeHandle, onError) => {
const [mapLayersCreated, setMapLayersCreated] = useState(false);
useEffect(() => {
const eventEmitter = new NativeEventEmitter();
let eventListener = eventEmitter.addListener('MapLayersCreated', result => {
if (result.nativeNodeHandle === nativeNodeHandle) {
setMapLayersCreated(true);
}
});
return () => {
eventListener.remove();
};
}, [nativeNodeHandle]);
useEffect(() => {
if (nativeNodeHandle) {
MapContainerModule.getLayersCreated(nativeNodeHandle).then(created => {
setMapLayersCreated(created);
}).catch(err => {
console.log('ERROR', err);
onError ? onError(err) : null;
});
}
}, [nativeNodeHandle]);
return mapLayersCreated;
};
export default useMapLayersCreated;
//# sourceMappingURL=useMapLayersCreated.js.map