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

52 lines (49 loc) 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = require("react"); var _promiseQueue = _interopRequireDefault(require("../promiseQueue.js")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } /** * External dependencies */ /** * Internal dependencies */ const State = { IDLE: 0, RUNNING: 1, STOPPED: 2 }; const usePromiseQueueState = () => { const [state, setState] = (0, _react.useState)(-1); const handleStart = () => setState(State.RUNNING); const handleStop = () => setState(State.STOPPED); const handleEnd = () => setState(State.IDLE); (0, _react.useEffect)(() => { _promiseQueue.default.on('start', handleStart); _promiseQueue.default.on('stop', handleStop); _promiseQueue.default.on('end', handleEnd); switch (true) { case 1 === _promiseQueue.default?.state?.RUNNING: case _promiseQueue.default.shouldRun: setState(State.RUNNING); break; case 2 === _promiseQueue.default?.state?.STOPPED: setState(State.STOPPED); break; default: setState(State.IDLE); } return () => { _promiseQueue.default.removeListener('start', handleStart); _promiseQueue.default.removeListener('stop', handleStop); _promiseQueue.default.removeListener('end', handleEnd); }; }, []); return state; }; var _default = exports.default = usePromiseQueueState; //# sourceMappingURL=usePromiseQueueState.js.map