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
JavaScript
;
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