Source: modules/changeResolutionHandler.js

/**
 * @module changeResolutionHandler
 */

/** Maximum zoom level to show pins
 * @constant {number}
 * @default 5
 */
const CUTOFF = 5;

/** Adds or removes pin vector layer depending on zoom level
 * @param {boolean} pinning - Boolean to toggle between new pin creation and viewing existing pins. If this is true, existing pins are not visible.
 * @param {ol.Map} map - OpenLayers map to center
 * @param {ol.layer.Vector} pinLayer - OpenLayers vector layer for pins
 */
const changeResolutionHandler = (pinning, map, pinLayer) => {
  map.getView().getZoom() < CUTOFF
    ? map.getLayers().removeAt(1)
    : (() => {
        if (map.getLayers().getLength() === 1) {
          if (!pinning) map.getLayers().extend([pinLayer]);
        }
      })();
};

export default changeResolutionHandler;