Cycle.js driver for preloading images
This driver takes in a sink stream of images to load and returns a source stream that emits whenever an image is loaded.
npm install --save cycle-image-loading-driveryarn add cycle-image-loading-driverLike any other driver, the (default) function makeImageLoadingDriver should be called in the run function.
run(main, {
imagesToLoad: makeImageLoadingDriver(),
})The function makeImageLoadingDriver takes no options.
The sink imagesToLoad should be a stream emiting an array of image urls.
function main() {
// ...
return {
imagesToLoad: xs.of([url1, url2, url3]),
}
}The source stream produced emits an object in which the keys is the image URL and the value an object with properties loaded and possibly error.
function main(sources) {
sources.imagesToLoad.map((images) => {
const isImg1Loaded = images[img1Url].loaded
//...
})
//...
}To loop through all images use Object.keys
function main(sources) {
sources.imagesToLoad.map((images) => {
const allImages = Object.keys(images).map((key) => {
const imgObj = images[key]
return { ...imgObj, id: key }
})
//...
})
//...
}