UNPKG

lml-main

Version:

This is now a mono repository published into many standalone packages.

42 lines 2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const redux_observable_1 = require("redux-observable"); const selectors_1 = require("../../couriers/selectors"); const actions_1 = require("../../couriers/actions"); const actions_2 = require("../../mapping/actions"); const cosmo_redux_api_1 = require("@lml/cosmo-redux-api"); exports.updateCourierMarker = (action$, store) => action$.ofType(cosmo_redux_api_1.SET_LOCATION_BY_OBJECT_ID) .map((action) => { const state = store.getState(); const activeCourierId = selectors_1.getActiveCourierId(state); let markerType = 'courier'; if (activeCourierId === action.location.objectId) { markerType = 'activeCourier'; } const marker = selectors_1.getCourierMarker(state, action.location.objectId); if (!marker) { return actions_1.courierHasNoLocation(action.location.objectId); } return actions_2.updateMarkers(markerType, [marker]); }); exports.updateCourierMarkersBatch = (action$, store) => action$.ofType(cosmo_redux_api_1.SET_LOCATION_BY_OBJECT_ID_BATCH) .mergeMap((action) => { // console.log('HANDLE ACTIVE COURIER', action) const state = store.getState(); const activeCourierId = selectors_1.getActiveCourierId(state); let activeCourierMarker = null; if (activeCourierId) { activeCourierMarker = selectors_1.getCourierMarker(state, activeCourierId); } const ids = action.locations .map(l => l.objectId !== activeCourierId ? l.objectId : null) .filter(Boolean); const markers = selectors_1.getCourierMarkers(state, ids); const res = [actions_2.updateMarkers('courier', markers)]; if (activeCourierMarker) { res.push(actions_2.updateMarkers('activeCourier', [activeCourierMarker])); } return res; }); exports.updateCourierMarkersEpics = redux_observable_1.combineEpics(exports.updateCourierMarker, exports.updateCourierMarkersBatch); //# sourceMappingURL=update-courier-markers.js.map