npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-native-smarter-list

v2.0.2

Published

React Native Smarter List

Downloads

20

Readme

react-native-smarter-list

The SmarterList is a small amount of code that wraps the Flatlist and Sectionlist. It takes the same params you would normally pass into the Flatlist and Sectionlist except your data (Flatlist) and sections (SectionList) will be passed in later along with an Item Component (the component which deteremines the look for each record in your list).

Let me explain.

Below, shows some sample code which can be used to create the List component from the SmarterList function. All object params passed into the SmarterList function are optional. As you can see below, there are four object params being passed in. A component is returned from the SmarterList function which holds all of the optional object params passed in.

import SmarterList from 'react-native-smarter-list';
import { ItemSeparatorComponent } from '../List/ItemSeparatorComponent';
import { ListEmptyComponent } from '../List/ListEmptyComponent';
import { SectionHeader as renderSectionHeader } from '../List/SectionHeader';
 
export const List = SmarterList({
  ItemSeparatorComponent,
  ListEmptyComponent,
  renderSectionHeader,
  widowSize: 151
});

The List above is the component which was returned from the SmarterList. Whenever you want to use it in your app, you can do it like below. The new List Component determines if it should use a Flatlist or Sectionlist from looking at the props passed down. If both data and sections are null, it will use the ListEmptyComponent if initially passed into the SmarterList function else it will return null. If sections are passed down, it will choose the SectionList else choose the Flatlist.

<List ItemComponent={ItemComponent} data={data} />

OR

<List ItemComponent={ItemComponent} sections={sections} />

So whats the point of it all? This allows you to build a reusable List component for your app that will have all of the same optional params passed in and you don't have to worry about recreating it and it works for both Flatlist and Sectionlist. Once created, the only thing you would have to do is create the Item Component and make sure you are passing the correct data/sections. The data/sections that is passed in is passed directly to your ItemComponent, nothing more and nothing less.