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

46 lines (44 loc) 1.21 kB
"use strict"; /** * External dependencies */ import { useEffect, useState } from 'react'; /** * Internal dependencies */ import promiseQueue from "../promiseQueue.js"; const State = { IDLE: 0, RUNNING: 1, STOPPED: 2 }; const usePromiseQueueState = () => { const [state, setState] = useState(-1); const handleStart = () => setState(State.RUNNING); const handleStop = () => setState(State.STOPPED); const handleEnd = () => setState(State.IDLE); useEffect(() => { promiseQueue.on('start', handleStart); promiseQueue.on('stop', handleStop); promiseQueue.on('end', handleEnd); switch (true) { case 1 === promiseQueue?.state?.RUNNING: case promiseQueue.shouldRun: setState(State.RUNNING); break; case 2 === promiseQueue?.state?.STOPPED: setState(State.STOPPED); break; default: setState(State.IDLE); } return () => { promiseQueue.removeListener('start', handleStart); promiseQueue.removeListener('stop', handleStop); promiseQueue.removeListener('end', handleEnd); }; }, []); return state; }; export default usePromiseQueueState; //# sourceMappingURL=usePromiseQueueState.js.map