0.1.32 • Published 3 years ago
@protonko/section-list v0.1.32
SectionList
Component for rendering sectioned lists for plain React. Created by analogy with React Native SectionList.
Installation
The package can be installed via npm:
npm install @protonko/section-list
Or via yarn:
yarn add @protonko/section-list
You’ll need to install react
and react-dom
separately since those dependencies aren’t included in the package.
Support
- React 17.0.0 or newer
Usage
import React from 'react';
import {Section, SectionList} from '@protonko/section-list'
interface ExampleData {
id: number,
title: string,
description: string,
// ...any attributes
}
const sections: Section<ExampleData> = [{
title: 'Section 1',
data: [{id: 1, title: 'title 1', description: 'descr'}]
}]
const Example = () => {
const keyExtractor = (item: ExampleData) => item.id
const renderItem = (elem: ExampleData) => (
<article>
<h2>{elem.title}</h2>
<p>{elem.description}</h2>
</article>
)
return (
<SectionList<ExampleData>
keyExtractor={keyExtractor}
renderItem={renderItem}
sections={sections}
/>
)
}
Props
The component expects a generic-type T that describes section data.
Name | Description | Type | Required |
---|---|---|---|
keyExtractor | Used to extract a unique key for a given item at the specified index. | (item: T, index: number) => string | yes |
renderItem | Default renderer for every item in every section. | (value: T, index: number, array: T[]) => ReactNode, | yes |
sections | The actual data to render. | {title: string, data: T[]}[] | yes |
className | Used to override a component's styles using custom classes. | string | no |
onEndReached | Called once when the scroll position gets within onEndReachedThreshold of the rendered content. | () => void | no |
onEndReachedThreshold | How far from the end the bottom edge of the list must be from the end of the content to trigger the onEndReached callback. | number | no |
renderSectionHeader | Rendered at the top of each section. | (section: {title: string, data: T[]}) => ReactNode | no |
shouldLoadData | Indicated whether to create an IntersectionObserver. | boolean | no |
ListEmptyComponent | Rendered when the list is empty. | ReactElement | no |
ListFooterComponent | Rendered at the very end of the list. | ReactElement | no |
0.1.32
3 years ago
0.1.31
3 years ago
0.1.30
3 years ago
0.1.28
3 years ago
0.1.27
3 years ago
0.1.26
3 years ago
0.1.25
3 years ago
0.1.24
3 years ago
0.1.23
3 years ago
0.1.22
3 years ago
0.1.21
3 years ago
0.1.20
3 years ago
0.1.19
3 years ago
0.1.18
3 years ago
0.1.17
3 years ago
0.1.16
3 years ago
0.1.15
3 years ago
0.1.14
3 years ago
0.1.13
3 years ago
0.1.12
3 years ago
0.1.11
3 years ago
0.1.10
3 years ago
0.1.9
3 years ago
0.1.8
3 years ago
0.1.7
3 years ago
0.1.6
3 years ago
0.1.5
3 years ago
0.1.4
3 years ago
0.1.3
3 years ago
0.1.2
3 years ago
0.1.1
3 years ago
0.1.0
3 years ago