@mapbox-react/env-layers
Version:
Mapbox React Component Library Env Layers
2 lines (1 loc) • 1.54 kB
JavaScript
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const L=require("react/jsx-runtime"),b=require("react"),f=require("ahooks"),O=require("uuid"),v=require("@deck.gl/mapbox"),C=require("@mapbox-react/core"),j=require("@mapbox-web/deck-gl-extension"),M=require("./props.js");function D(t){const x=b.useContext(C.MapContext),r=b.useRef(null),R=b.useRef(t.id||O.v4());return f.useMount(()=>{const{image:e,windMin:n,windMax:a,windRange:i,windOrigin:o,windRes:s,particlesNumber:u,fadeOpacity:c,speedFactor:d,dropRate:p,dropRateBump:m,rampColors:l,opacity:y,visible:w}={...M.windLayerDefaultProps(),...t},g=x.mapboxInstance,q={id:R.current,image:e,windMin:n,windMax:a,windRange:i,windOrigin:o,windRes:s,particlesNumber:u,fadeOpacity:c,speedFactor:d,dropRate:p,dropRateBump:m,rampColors:l,opacity:y,visible:w};r.current=new v.MapboxLayer(Object.assign({type:j.WindLayer},q)),g.addLayer(r.current)}),f.useUnmount(()=>{const e=x.mapboxInstance;e&&r.current&&e.removeLayer(R.current)}),f.useDeepCompareEffect(()=>{const{image:e,windMin:n,windMax:a,windRange:i,windOrigin:o,windRes:s,particlesNumber:u,fadeOpacity:c,speedFactor:d,dropRate:p,dropRateBump:m,rampColors:l,opacity:y,visible:w}={...M.windLayerDefaultProps(),...t};r.current&&r.current.setProps({image:e,windMin:n,windMax:a,windRange:i,windOrigin:o,windRes:s,particlesNumber:u,fadeOpacity:c,speedFactor:d,dropRate:p,dropRateBump:m,rampColors:l,opacity:y,visible:w})},[t]),L.jsx("i",{className:"mb-wind-layer"})}exports.default=D;