UNPKG

react-native-mapsforge-vtm

Version:

React Native components to build vector maps using Mapsforges fork of vtm. Offline rendering of OpenStreetMap data. Android only

66 lines (62 loc) 1.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = require("react"); var _reactNative = require("react-native"); /** * External dependencies */ /** * Internal dependencies */ const { MapLayerMapsforgeModule } = _reactNative.NativeModules; const useRenderStyleOptions = ({ renderTheme, nativeNodeHandle, onError }) => { const [renderStyleOptions, setRenderStyleOptions] = (0, _react.useState)([]); const [renderStyleDefaultId, setRenderStyleDefault] = (0, _react.useState)(null); (0, _react.useEffect)(() => { const eventEmitter = new _reactNative.NativeEventEmitter(); let eventListener = eventEmitter.addListener('RenderThemeParsed', result => { if (result && renderTheme === result.filePath) { setRenderStyleOptions(Object.values(result.collection)); if (null == renderStyleDefaultId) { const defaultStyle = Object.values(result.collection).find(obj => !!obj.default); if (undefined !== defaultStyle) { setRenderStyleDefault(defaultStyle.value); } } } }); return () => { eventListener.remove(); }; }, [nativeNodeHandle]); // ??? should reset on prop change !!! (0, _react.useEffect)(() => { if (renderTheme) { MapLayerMapsforgeModule.getRenderThemeOptions(renderTheme).then(collection => { setRenderStyleOptions(Object.values(collection)); const defaultStyle = Object.values(collection).find(obj => obj.default); if (undefined !== defaultStyle && !!defaultStyle) { setRenderStyleDefault(defaultStyle.value); } }).catch(err => { console.log('ERROR', err); onError ? onError(err) : null; }); } }, [nativeNodeHandle, renderTheme]); return { renderStyleDefaultId, renderStyleOptions }; }; var _default = exports.default = useRenderStyleOptions; //# sourceMappingURL=useRenderStyleOptions.js.map