UNPKG

react-windowed-list

Version:

A fast, versatile virtual-render list component for React

76 lines (67 loc) 2.23 kB
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; // external dependencies import React from 'react'; import { createComponent, createComponentRef } from 'react-parm'; // classes import WindowedListRenderer from './WindowedListRenderer'; /** * @function getVisibleRange * * @description * get the visible range on the windowed list component * * @param {ReactComponent} ref the WindowedList component * @returns {Array<number>} */ export var getVisibleRange = function getVisibleRange(_ref) { var ref = _ref.ref; return ref && ref.originalComponent ? ref.originalComponent.getVisibleRange() : [0, 0]; }; /** * @function scrollAround * * @description * scroll around the index passed on the windowed list component * * @param {ReactComponent} ref the WindowedList component * @param {number} index the index to scroll around * @returns {Array<number>} */ export var scrollAround = function scrollAround(_ref2, _ref3) { var ref = _ref2.ref; var index = _ref3[0]; return ref && ref.originalComponent ? ref.originalComponent.scrollAround(index) : null; }; /** * @function scrollTo * * @description * scroll to the index passed on the windowed list component * * @param {ReactComponent} ref the WindowedList component * @param {number} index the index to scroll to * @returns {Array<number>} */ export var scrollTo = function scrollTo(_ref4, _ref5) { var ref = _ref4.ref; var index = _ref5[0]; return ref && ref.originalComponent ? ref.originalComponent.scrollTo(index) : null; }; var WindowedList = function WindowedList(props, instance) { return ( /* eslint-disable prettier */ React.createElement(WindowedListRenderer, _extends({}, props, { ref: createComponentRef(instance, 'ref') })) /* eslint-enable */ ); }; WindowedList.displayName = 'WindowedList'; export default createComponent(WindowedList, { // instance values ref: null, // instance methods getVisibleRange: getVisibleRange, scrollAround: scrollAround, scrollTo: scrollTo });