UNPKG

3.01 kBSource Map (JSON)View Raw
1{"version":3,"file":"index-030bfca8.js","sources":["../src/providers/Redraw/Redraw.js"],"sourcesContent":["import React from 'react'\nimport PropTypes from 'prop-types'\nimport getDisplayName from 'react-display-name'\n\n// Render prop component and HOC for re-rendering.\n// For a discussion on pitfalls, see\n// https://gist.github.com/staltz/08bf613199092eeb41ac8137d51eb5e6\n\nclass Redraw extends React.PureComponent {\n static propTypes = {\n interval: PropTypes.number,\n children: PropTypes.func.isRequired,\n }\n static defaultProps = {\n interval: 1000,\n }\n state = {\n lastDraw: -1,\n }\n componentDidMount() {\n this.raf = null\n this.draw()\n }\n componentWillUnmount() {\n this.raf && cancelAnimationFrame(this.raf)\n }\n draw = () => {\n this.raf = requestAnimationFrame(this.draw)\n\n const { interval } = this.props\n const { lastDraw } = this.state\n const now = Date.now()\n const delta = now - lastDraw\n\n if (lastDraw === -1 || delta > interval) {\n this.setState({\n lastDraw: Math.round(now / interval) * interval,\n })\n }\n }\n render() {\n return this.props.children()\n }\n}\n\nconst hocWrap = (Component, interval) => {\n const HOC = props => (\n <Redraw interval={interval}>{() => <Component {...props} />}</Redraw>\n )\n HOC.displayName = `Redraw(${getDisplayName(Component)})`\n return HOC\n}\n\nRedraw.hocWrap = hocWrap\n\nexport { Redraw, hocWrap }\nexport default Redraw\n"],"names":["Redraw","lastDraw","raf","requestAnimationFrame","draw","interval","props","state","now","Date","delta","setState","Math","round","cancelAnimationFrame","children","React","PureComponent","PropTypes","number","func","isRequired","hocWrap","Component","HOC","displayName","getDisplayName"],"mappings":";;;;;;;;;;;;;;AAKA;AACA;;IAEMA;;;;;;;;;;;;;;;;4FAQI;AACNC,MAAAA,QAAQ,EAAE,CAAC;AADL;;2FAUD,YAAM;AACX,YAAKC,GAAL,GAAWC,qBAAqB,CAAC,MAAKC,IAAN,CAAhC;AADW,UAGHC,QAHG,GAGU,MAAKC,KAHf,CAGHD,QAHG;AAAA,UAIHJ,QAJG,GAIU,MAAKM,KAJf,CAIHN,QAJG;AAKX,UAAMO,GAAG,GAAGC,IAAI,CAACD,GAAL,EAAZ;AACA,UAAME,KAAK,GAAGF,GAAG,GAAGP,QAApB;;AAEA,UAAIA,QAAQ,KAAK,CAAC,CAAd,IAAmBS,KAAK,GAAGL,QAA/B,EAAyC;AACvC,cAAKM,QAAL,CAAc;AACZV,UAAAA,QAAQ,EAAEW,IAAI,CAACC,KAAL,CAAWL,GAAG,GAAGH,QAAjB,IAA6BA;AAD3B,SAAd;AAGD;AACF;;;;;;;wCApBmB;AAClB,WAAKH,GAAL,GAAW,IAAX;AACA,WAAKE,IAAL;AACD;;;2CACsB;AACrB,WAAKF,GAAL,IAAYY,oBAAoB,CAAC,KAAKZ,GAAN,CAAhC;AACD;;;6BAeQ;AACP,aAAO,KAAKI,KAAL,CAAWS,QAAX,EAAP;AACD;;;;EAlCkBC,cAAK,CAACC;;iCAArBjB,qBACe;AACjBK,EAAAA,QAAQ,EAAEa,eAAS,CAACC,MADH;AAEjBJ,EAAAA,QAAQ,EAAEG,eAAS,CAACE,IAAV,CAAeC;AAFR;;iCADfrB,wBAKkB;AACpBK,EAAAA,QAAQ,EAAE;AADU;;AAgCxB,IAAMiB,OAAO,GAAG,SAAVA,OAAU,CAACC,SAAD,EAAYlB,QAAZ,EAAyB;AACvC,MAAMmB,GAAG,GAAG,SAANA,GAAM,CAAAlB,KAAK;AAAA,wBACfU,6BAAC,MAAD;AAAQ,MAAA,QAAQ,EAAEX;AAAlB,OAA6B;AAAA,0BAAMW,6BAAC,SAAD,EAAeV,KAAf,CAAN;AAAA,KAA7B,CADe;AAAA,GAAjB;;AAGAkB,EAAAA,GAAG,CAACC,WAAJ,oBAA4BC,6BAAc,CAACH,SAAD,CAA1C;AACA,SAAOC,GAAP;AACD,CAND;;AAQAxB,MAAM,CAACsB,OAAP,GAAiBA,OAAjB;;;;"}
\No newline at end of file