react-virtualized-mask-list

1.0.2 • Public • Published

react-virtualized-mask-list

Applies to a virtualized list with highly fixed child elements, partial rendering of data within the filter range

!!! This component only applies to fixed lists/tables of row heights.

One VirtualizedMaskFilter can contains multi VirtualizedList. The mask filter

Install:

# use yarn
yarn add react-virtualized-mask-list

# or use npm
npm install react-virtualized-mask-list

Usage:

/** Filter Usage */
import { VirtualizedMaskFilter } from 'react-virtualized-mask-list';

<VirtualizedMaskFilter>
  {(maskFilterParams) => {
    const { rectRef } = maskFilterParams;
    return (
      <div
        className="listWrapper"
        ref={rectRef}
      >
        <List1 maskFilterParams={maskFilterParams} />
      </div>
    );
  }}
</VirtualizedMaskFilter>

// if scroll container is window, use useWindow prop
<VirtualizedMaskFilter useWindow>
  {(maskFilterParams) => {
    const { rectRef } = maskFilterParams;
    rectRef();

    ...
  }}
</VirtualizedMaskFilter>


/** List Usage */
import { VirtualizedList } from 'react-virtualized-mask-list';

class List1 extends React.Component {
  showRender = (showData) => {
    return (
      <React.Fragment>
        {_.map(showData, (data, index) => {
          ...
        })}
      </React.Fragment>
    );
  };

  noRowsRender = () => null;

  render() {
    const { dataSource, maskFilterParams } = this.props;
    const { top, bottom, stateTs } = maskFilterParams;

    return (
      <div className="list1">
        <VirtualizedList
          maskFilterRectTop={top}
          maskFilterRectBottom={bottom}
          maskFilterStateTs={stateTs}
          data={dataSource}
          rowHeight={32}
          bufferSize={2}
          showRender={this.showRender}
          noRowsRender={this.noRowsRender}
        />
      </div>
    );
  }
}

Package Sidebar

Install

npm i react-virtualized-mask-list

Weekly Downloads

1

Version

1.0.2

License

ISC

Unpacked Size

19.2 kB

Total Files

6

Last publish

Collaborators

  • vitace