Skip to content

Commit

Permalink
fixing mutations + adding dev/prod setup webpack + fixing loading of …
Browse files Browse the repository at this point in the history
…multiple pages through infinite scroll
  • Loading branch information
ibrahimab committed Aug 11, 2020
1 parent b5b2716 commit d69f3f5
Show file tree
Hide file tree
Showing 8 changed files with 421 additions and 159 deletions.
145 changes: 1 addition & 144 deletions js/flat-lazy.js

Large diffs are not rendered by default.

374 changes: 374 additions & 0 deletions package-lock.json

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,17 @@
}
],
"scripts": {
"build": "webpack"
"build:dev": "webpack-cli -w --config webpack.dev.js",
"build:prod": "webpack-cli --config webpack.prod.js"
},
"dependencies": {
"intersection-observer": "^0.11.0"
},
"devDependencies": {
"clean-webpack-plugin": "^3.0.0",
"source-map-loader": "^1.0.1",
"webpack": "^4.44.1",
"webpack-cli": "^3.3.12"
"webpack-cli": "^3.3.12",
"webpack-merge": "^5.1.1"
}
}
6 changes: 4 additions & 2 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,16 @@ if (!'IntersectionObserver' in window &&

root: document,
rootMargin: `${viewportHeight}px 0px ${viewportHeight}px 0px`,
threshold: 0.5
threshold: 0.1
});

// finding lazy loadable images
let targets = document.querySelectorAll('[data-flat-lazy-load-image][data-loaded="0"]');
let targets = document.querySelectorAll('[data-flat-lazy-load-image="true"][data-loaded="0"]');

// adding to intersect observer
targets.forEach(function(target) {

target.setAttribute('data-observing', true);
intersectObserver.observe(target);
});

Expand Down
4 changes: 3 additions & 1 deletion src/mutations.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@ module.exports = function observeMutations(observer) {

let image = node.querySelector('img');

if (typeof image !== 'undefined') {
if (image !== null && false === image.hasAttribute('data-observing')) {
console.log(image);
image.setAttribute('data-observing', true);
observer.observe(image);
}
});
Expand Down
10 changes: 0 additions & 10 deletions webpack.config.js

This file was deleted.

25 changes: 25 additions & 0 deletions webpack.dev.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
const path = require('path');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');

module.exports = {
entry: './src/index.js',
mode: 'development',
output: {
filename: 'flat-lazy.js',
path: path.resolve(__dirname, 'js'),
},

// enable sourcemaps for debugging webpack's output.
devtool: "source-map",

module: {
rules: [
// All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'.
{ test: /\.js$/, loader: 'source-map-loader', enforce: 'pre' }
]
},

plugins: [
new CleanWebpackPlugin(),
]
};
8 changes: 8 additions & 0 deletions webpack.prod.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const { merge } = require('webpack-merge');
const dev = require('./webpack.dev.js');

module.exports = merge(dev, {

mode: 'production',
devtool: false
});

0 comments on commit d69f3f5

Please sign in to comment.