Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

react-8

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-8

Simple infinite scrolling for React

  • 0.0.3
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1
decreased by-80%
Maintainers
1
Weekly downloads
 
Created
Source

#React 8 (infinity)

Simple, lightweight, universal component for infinite scrolling.

##Installation

npm install react-8

##Demo

See here.

##Example

import React from 'react';
import InfiniteScroll from 'react-8';

class MyAwesomeComponent extends React.Component {
  constructor(props) {
    super(props);
    this.state = { count: 2 };
  }
  render() {
    const {count} = this.state;
    return (
      <InfiniteScroll
        onNewData={this.handleNewData.bind(this)}
        style={{ height: 100, overflowY: 'auto' }}>
        { this.generateContent(count) }
      </InfiniteScroll>
    );
  }
  handleNewData() { // can also be used async, see `Usage`
    if (this.state.count === 10) return false; // return false to disable loading new data

    this.setState({ count: this.state.count + 1 });
  }
  generateContent(count) {
    return Array(count).fill().map((_, i) => <p key={i}>Lorem ipsum ...</p>);
  }
}

##Usage

The API of the component is incredibly simple. There are just 3 properties to pass (including children).

The component will just wrap the passed children in a <div>, without any styles or properties, just the necessary event listeners. You need to define styles for scrolling by yourself. All component properties are passed to that <div>.


Here are the properties the component uses:

####onNewData: function (required)

This function will be called when new data is needed. The function simply needs to get data and append to the children. Though there are two special behaviors:

  1. Function returning false indicates that there is no more data and the component will not try to get any more.
  2. If function is defined with one parameter (eg. onNewData = (done) => ...), the component implies that it's a async call and will wait for it to finish before trying to get more data. The passed parameter is a function which needs to be called for the component to know that the process is over.
  • If the callback is called with false as argument (done(false)), component's behavior will be disabled.

####offsetRatio: number (default=0.5)

The offset when the function will be called to get new data to display. The provided number is multiplied by actual component height. For example, if the component height is 300 and offsetRatio is 0.5 the callback will be called as soon as the scrollbar enters the last 150 pixels of the whole scroll length.

Keywords

FAQs

Package last updated on 12 Jan 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc