An open API service indexing awesome lists of open source software.

https://github.com/pcpl2/infinite-scroll-mithril

Infinity scroll component for mithril.js
https://github.com/pcpl2/infinite-scroll-mithril

front front-end front-end-development infinite mithril nojquery scroll web-development

Last synced: 5 months ago
JSON representation

Infinity scroll component for mithril.js

Awesome Lists containing this project

README

          

infinite-scroll-mithril

[![nfinite-scroll-mithril](https://img.shields.io/npm/v/infinite-scroll-mithril?label=infinite-scroll-mithril)](https://github.com/pcpl2/infinite-scroll-mithril)
[![BSD-2-Clause License](https://img.shields.io/github/license/pcpl2/infinite-scroll-mithril.svg)](https://github.com/pcpl2/infinite-scroll-mithril/blob/main/LICENSE)
[![Downloads](https://img.shields.io/npm/dm/infinite-scroll-mithril.svg)](https://www.npmjs.com/package/infinite-scroll-mithril)

Infinity scroll component for mithril

Compatible with Mithril 2.x

## Installation
Use as npm module:
```
npm install infinite-scroll-mithril
```
or download/clone from Github.

## Supported Browsers
This component has required [IntersectionObserver API](https://caniuse.com/?search=IntersectionObserver) to works.

| [Edge](http://godban.github.io/browsers-support-badges/)Edge | [Firefox](http://godban.github.io/browsers-support-badges/)Firefox | [Chrome](http://godban.github.io/browsers-support-badges/)Chrome | [Safari](http://godban.github.io/browsers-support-badges/)Safari | [Opera](http://godban.github.io/browsers-support-badges/)Opera
| --- | --- | --- | --- | --- |
| Edge 16+ | 55+ | 58+ | 12.1+ | 45+ |

## How to use

Example avaiable on [codesandbox.io](https://codesandbox.io/s/infinite-scroll-mithril-example-lxgub)

### Options

| **Parameter** | **Mandatory** | **Type** | **Default** | **Description** |
| ------------- | -------------- | -------- | ----------- | --------------- |
| **preload** | optional | Boolean | | Initial loading first page |
| **pageCount** | required | Number | 0 | Number of elements per page |
| **loadingFooter** | optional | Mithril object | | Element visible under the list while loading |
| **pageRequest** | required | Function `(page: Number) => Promise` | | Function that fetches data; accepts a page number and returns a promise |
| **processPageData** | required | Function `(data: Array) => Array` | | Function that creates a Mithril element from received data |