lazy-react 3.2.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/demo/index.js CHANGED
@@ -116,7 +116,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var reac
116
116
  \***********************/
117
117
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
118
118
 
119
- eval("\n!function (e, t) { true ? module.exports = t(__webpack_require__(/*! react */ \"./node_modules/react/index.js\")) : 0; }(self, (e => (() => {\n \"use strict\";\n var t = { 787: t => { t.exports = e; } }, n = {};\n function r(e) { var o = n[e]; if (void 0 !== o)\n return o.exports; var l = n[e] = { exports: {} }; return t[e](l, l.exports, r), l.exports; }\n r.n = e => { var t = e && e.__esModule ? () => e.default : () => e; return r.d(t, { a: t }), t; }, r.d = (e, t) => { for (var n in t)\n r.o(t, n) && !r.o(e, n) && Object.defineProperty(e, n, { enumerable: !0, get: t[n] }); }, r.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t), r.r = e => { \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: \"Module\" }), Object.defineProperty(e, \"__esModule\", { value: !0 }); };\n var o = {};\n return (() => { r.r(o), r.d(o, { LazyBackgroundImage: () => n, LazyComponent: () => i, LazyFrame: () => a, LazyImage: () => l, default: () => s }); var e = r(787), t = r.n(e); function n(n) { let [r, o, l] = s(n); const [a, i] = (0, e.useState)(Object.assign({ backgroundImage: `url(${o})` }, n.style)); return (0, e.useEffect)((() => { i(Object.assign({ backgroundImage: `url(${o})` }, n.style)); }), [o, l]), t().createElement(\"div\", { className: n.className, style: a, ref: e => { r(e); } }, n.children); } function l(e) { const [n, r] = s(e); return t().createElement(\"div\", { ref: e => { n(e); } }, t().createElement(\"img\", { src: r, alt: e.alt, style: e.style, className: e.className })); } function a(e) { let [n, r] = s(e); return t().createElement(\"iframe\", Object.assign({ height: e.height || \"500\", scrolling: e.scrolling || \"no\", src: r, frameBorder: e.frameBorder || \"no\", allowFullScreen: e.allowFullScreen || !0, style: e.style || {}, ref: e => { n(e); } }, e)); } function i(e) { const [n, r, o] = s(e); return o ? t().createElement(\"div\", null, e.children) : t().createElement(\"div\", { ref: e => { n(e); }, style: Object.assign({ height: \"300px\", width: \"300px\" }, e.style) }); } function s(t) { const [n, r] = (0, e.useState)(\"\"), [o, l] = (0, e.useState)(!1); let [a, i] = (0, e.useState)(null); const s = (0, e.useMemo)((() => ({ element: a, makeItVisible: d, offset: t.offset || 100 })), [a, t]), c = (0, e.useCallback)((e => { null !== e && i(e); }), []); function d() { r((() => t.link)), l((() => !0)); } return (0, e.useEffect)((() => (null !== a && u.addElement(s), () => u.removeElementFromList(s))), [a]), [c, n, o]; } let c = []; const u = { isInViewPort: ({ offset: e, top: t, left: n }) => t < window.innerHeight + e && n < window.innerWidth + e, calculateNewPosition: e => { var t; const { top: n, left: r } = (null === (t = e.element) || void 0 === t ? void 0 : t.getBoundingClientRect()) || { top: 0, left: 0 }; return Object.assign(Object.assign({}, e), { top: n, left: r }); }, addElement: function (e) { c.push(e), 0 === u.isListenerAttached && (u.isListenerAttached = window.requestAnimationFrame(u.eventHandler)); }, eventHandler: function () { 0 === c.length ? u.removeScrollHandler() : (c.forEach(((e, t) => { u.isInViewPort(u.calculateNewPosition(e)) && (e.makeItVisible(), u.removeElementFromList(e)); })), u.isListenerAttached = window.requestAnimationFrame(u.eventHandler)); }, removeScrollHandler: function () { window.cancelAnimationFrame(u.isListenerAttached), u.isListenerAttached = 0; }, removeElementFromList: function (e) { c = c.filter((t => t !== e)); }, isListenerAttached: 0 }; })(), o;\n})()));\n\n\n//# sourceURL=webpack://lazy-react/./dist/index.js?");
119
+ eval("\n!function (e, t) { true ? module.exports = t(__webpack_require__(/*! react */ \"./node_modules/react/index.js\")) : 0; }(self, (e => (() => {\n \"use strict\";\n var t = { 787: t => { t.exports = e; } }, n = {};\n function r(e) { var o = n[e]; if (void 0 !== o)\n return o.exports; var l = n[e] = { exports: {} }; return t[e](l, l.exports, r), l.exports; }\n r.n = e => { var t = e && e.__esModule ? () => e.default : () => e; return r.d(t, { a: t }), t; }, r.d = (e, t) => { for (var n in t)\n r.o(t, n) && !r.o(e, n) && Object.defineProperty(e, n, { enumerable: !0, get: t[n] }); }, r.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t), r.r = e => { \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: \"Module\" }), Object.defineProperty(e, \"__esModule\", { value: !0 }); };\n var o = {};\n return (() => { r.r(o), r.d(o, { LazyBackgroundImage: () => n, LazyComponent: () => i, LazyFrame: () => a, LazyImage: () => l, default: () => s }); var e = r(787), t = r.n(e); function n(n) { let [r, o, l] = s(n); const [a, i] = (0, e.useState)(Object.assign({ backgroundImage: `url(${o})` }, n.style)); return (0, e.useEffect)((() => { i(Object.assign({ backgroundImage: `url(${o})` }, n.style)); }), [o, l]), t().createElement(\"div\", { className: n.className, style: a, ref: e => { r(e); } }, n.children); } function l(e) { const [n, r] = s(e); return t().createElement(\"div\", { ref: e => { n(e); } }, t().createElement(\"img\", { src: r, alt: e.alt, style: e.style, className: e.className })); } function a(e) { let [n, r] = s(e); return t().createElement(\"iframe\", Object.assign({ height: e.height || \"500\", scrolling: e.scrolling || \"no\", src: r, frameBorder: e.frameBorder || \"no\", allowFullScreen: e.allowFullScreen || !0, style: e.style || {}, ref: e => { n(e); } }, e)); } function i(e) { const [n, r, o] = s(e); return o ? t().createElement(\"div\", null, e.children) : t().createElement(\"div\", { ref: e => { n(e); }, style: Object.assign({ height: \"300px\", width: \"300px\" }, e.style) }); } function s(t) { const [n, r] = (0, e.useState)(\"\"), [o, l] = (0, e.useState)(!1); let [a, i] = (0, e.useState)(null); const s = (0, e.useMemo)((() => ({ element: a, makeItVisible: d, offset: t.offset || 100 })), [a, t]), c = (0, e.useCallback)((e => { null !== e && i(e); }), []); function d() { t.link && r((() => t.link)), l((() => !0)); } return (0, e.useEffect)((() => (null !== a && u.addElement(s), () => u.removeElementFromList(s))), [a]), [c, n, o]; } let c = []; const u = { isInViewPort: ({ offset: e, top: t, left: n }) => t < window.innerHeight + e && n < window.innerWidth + e, calculateNewPosition: e => { var t; const { top: n, left: r } = (null === (t = e.element) || void 0 === t ? void 0 : t.getBoundingClientRect()) || { top: 0, left: 0 }; return Object.assign(Object.assign({}, e), { top: n, left: r }); }, addElement: function (e) { c.push(e), 0 === u.isListenerAttached && (u.isListenerAttached = window.requestAnimationFrame(u.eventHandler)); }, eventHandler: function () { 0 === c.length ? u.removeScrollHandler() : (c.forEach(((e, t) => { u.isInViewPort(u.calculateNewPosition(e)) && (e.makeItVisible(), u.removeElementFromList(e)); })), u.isListenerAttached = window.requestAnimationFrame(u.eventHandler)); }, removeScrollHandler: function () { window.cancelAnimationFrame(u.isListenerAttached), u.isListenerAttached = 0; }, removeElementFromList: function (e) { c = c.filter((t => t !== e)); }, isListenerAttached: 0 }; })(), o;\n})()));\n\n\n//# sourceURL=webpack://lazy-react/./dist/index.js?");
120
120
 
121
121
  /***/ })
122
122
 
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports.LazyReact=t(require("react")):e.LazyReact=t(e.React)}(self,(e=>(()=>{"use strict";var t={787:t=>{t.exports=e}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var l=n[e]={exports:{}};return t[e](l,l.exports,r),l.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return(()=>{r.r(o),r.d(o,{LazyBackgroundImage:()=>n,LazyComponent:()=>i,LazyFrame:()=>a,LazyImage:()=>l,default:()=>s});var e=r(787),t=r.n(e);function n(n){let[r,o,l]=s(n);const[a,i]=(0,e.useState)(Object.assign({backgroundImage:`url(${o})`},n.style));return(0,e.useEffect)((()=>{i(Object.assign({backgroundImage:`url(${o})`},n.style))}),[o,l]),t().createElement("div",{className:n.className,style:a,ref:e=>{r(e)}},n.children)}function l(e){const[n,r]=s(e);return t().createElement("div",{ref:e=>{n(e)}},t().createElement("img",{src:r,alt:e.alt,style:e.style,className:e.className}))}function a(e){let[n,r]=s(e);return t().createElement("iframe",Object.assign({height:e.height||"500",scrolling:e.scrolling||"no",src:r,frameBorder:e.frameBorder||"no",allowFullScreen:e.allowFullScreen||!0,style:e.style||{},ref:e=>{n(e)}},e))}function i(e){const[n,r,o]=s(e);return o?t().createElement("div",null,e.children):t().createElement("div",{ref:e=>{n(e)},style:Object.assign({height:"300px",width:"300px"},e.style)})}function s(t){const[n,r]=(0,e.useState)(""),[o,l]=(0,e.useState)(!1);let[a,i]=(0,e.useState)(null);const s=(0,e.useMemo)((()=>({element:a,makeItVisible:d,offset:t.offset||100})),[a,t]),c=(0,e.useCallback)((e=>{null!==e&&i(e)}),[]);function d(){r((()=>t.link)),l((()=>!0))}return(0,e.useEffect)((()=>(null!==a&&u.addElement(s),()=>u.removeElementFromList(s))),[a]),[c,n,o]}let c=[];const u={isInViewPort:({offset:e,top:t,left:n})=>t<window.innerHeight+e&&n<window.innerWidth+e,calculateNewPosition:e=>{var t;const{top:n,left:r}=(null===(t=e.element)||void 0===t?void 0:t.getBoundingClientRect())||{top:0,left:0};return Object.assign(Object.assign({},e),{top:n,left:r})},addElement:function(e){c.push(e),0===u.isListenerAttached&&(u.isListenerAttached=window.requestAnimationFrame(u.eventHandler))},eventHandler:function(){0===c.length?u.removeScrollHandler():(c.forEach(((e,t)=>{u.isInViewPort(u.calculateNewPosition(e))&&(e.makeItVisible(),u.removeElementFromList(e))})),u.isListenerAttached=window.requestAnimationFrame(u.eventHandler))},removeScrollHandler:function(){window.cancelAnimationFrame(u.isListenerAttached),u.isListenerAttached=0},removeElementFromList:function(e){c=c.filter((t=>t!==e))},isListenerAttached:0}})(),o})()));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports.LazyReact=t(require("react")):e.LazyReact=t(e.React)}(self,(e=>(()=>{"use strict";var t={787:t=>{t.exports=e}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var l=n[e]={exports:{}};return t[e](l,l.exports,r),l.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return(()=>{r.r(o),r.d(o,{LazyBackgroundImage:()=>n,LazyComponent:()=>i,LazyFrame:()=>a,LazyImage:()=>l,default:()=>s});var e=r(787),t=r.n(e);function n(n){let[r,o,l]=s(n);const[a,i]=(0,e.useState)(Object.assign({backgroundImage:`url(${o})`},n.style));return(0,e.useEffect)((()=>{i(Object.assign({backgroundImage:`url(${o})`},n.style))}),[o,l]),t().createElement("div",{className:n.className,style:a,ref:e=>{r(e)}},n.children)}function l(e){const[n,r]=s(e);return t().createElement("div",{ref:e=>{n(e)}},t().createElement("img",{src:r,alt:e.alt,style:e.style,className:e.className}))}function a(e){let[n,r]=s(e);return t().createElement("iframe",Object.assign({height:e.height||"500",scrolling:e.scrolling||"no",src:r,frameBorder:e.frameBorder||"no",allowFullScreen:e.allowFullScreen||!0,style:e.style||{},ref:e=>{n(e)}},e))}function i(e){const[n,r,o]=s(e);return o?t().createElement("div",null,e.children):t().createElement("div",{ref:e=>{n(e)},style:Object.assign({height:"300px",width:"300px"},e.style)})}function s(t){const[n,r]=(0,e.useState)(""),[o,l]=(0,e.useState)(!1);let[a,i]=(0,e.useState)(null);const s=(0,e.useMemo)((()=>({element:a,makeItVisible:d,offset:t.offset||100})),[a,t]),c=(0,e.useCallback)((e=>{null!==e&&i(e)}),[]);function d(){t.link&&r((()=>t.link)),l((()=>!0))}return(0,e.useEffect)((()=>(null!==a&&u.addElement(s),()=>u.removeElementFromList(s))),[a]),[c,n,o]}let c=[];const u={isInViewPort:({offset:e,top:t,left:n})=>t<window.innerHeight+e&&n<window.innerWidth+e,calculateNewPosition:e=>{var t;const{top:n,left:r}=(null===(t=e.element)||void 0===t?void 0:t.getBoundingClientRect())||{top:0,left:0};return Object.assign(Object.assign({},e),{top:n,left:r})},addElement:function(e){c.push(e),0===u.isListenerAttached&&(u.isListenerAttached=window.requestAnimationFrame(u.eventHandler))},eventHandler:function(){0===c.length?u.removeScrollHandler():(c.forEach(((e,t)=>{u.isInViewPort(u.calculateNewPosition(e))&&(e.makeItVisible(),u.removeElementFromList(e))})),u.isListenerAttached=window.requestAnimationFrame(u.eventHandler))},removeScrollHandler:function(){window.cancelAnimationFrame(u.isListenerAttached),u.isListenerAttached=0},removeElementFromList:function(e){c=c.filter((t=>t!==e))},isListenerAttached:0}})(),o})()));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lazy-react",
3
- "version": "3.2.0",
3
+ "version": "3.3.0",
4
4
  "description": "components to lazy load iframes, images and images as backgrounds",
5
5
  "main": "./dist/index.js",
6
6
  "scripts": {
@@ -28,7 +28,8 @@ export default function useRenderIfInViewPort(props: {
28
28
  }, [])
29
29
 
30
30
  function makeItVisible() {
31
- setLink(() => props.link)
31
+ if(props.link)
32
+ setLink(() => props.link)
32
33
  setVisible(() => true)
33
34
  }
34
35
 
package/webpack.config.js CHANGED
@@ -1,13 +1,13 @@
1
- const path = require('path');
1
+ const path = require('path')
2
2
 
3
3
  module.exports = {
4
- mode:'production',
5
- entry: path.join(__dirname,'./src/index.tsx'),
4
+ mode: 'production',
5
+ entry: path.join(__dirname, './src/index.tsx'),
6
6
  module: {
7
7
  rules: [
8
8
  {
9
9
  test: /\.tsx?$/,
10
- use: [{loader:'ts-loader'}],
10
+ use: [{ loader: 'ts-loader' }],
11
11
  exclude: /node_modules/,
12
12
  },
13
13
  ],
@@ -19,24 +19,20 @@ module.exports = {
19
19
  library: 'LazyReact',
20
20
  libraryTarget: 'umd',
21
21
  path: path.join(__dirname),
22
- filename: './dist/index.js'
22
+ filename: './dist/index.js',
23
23
  },
24
- externals: [
25
- {
26
- react: {
27
- root: 'React',
28
- commonjs2: 'react',
29
- commonjs: 'react',
30
- amd: 'react'
31
- }
24
+ externals: {
25
+ react: {
26
+ root: 'React',
27
+ commonjs2: 'react',
28
+ commonjs: 'react',
29
+ amd: 'react'
32
30
  },
33
- {
34
- 'react-dom': {
35
- root: 'ReactDOM',
36
- commonjs2: 'react-dom',
37
- commonjs: 'react-dom',
38
- amd: 'react-dom'
39
- }
31
+ 'react-dom': {
32
+ root: 'ReactDOM',
33
+ commonjs2: 'react-dom',
34
+ commonjs: 'react-dom',
35
+ amd: 'react-dom'
40
36
  }
41
- ],
42
- };
37
+ }
38
+ }