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

reactivous

v0.1.0

Published

Reactivous is a collection of utility functions and custom hooks for building React applications. It's designed to help you write cleaner, more concise code and speed up your development process.

Downloads

1

Readme

Reactivous

Reactivous is a collection of utility functions and custom hooks for building React applications. It's designed to help you write cleaner, more concise code and speed up your development process.

Features

  • A variety of utility functions and custom hooks for common tasks like handling array state(for now its the only one but more coming soon)
  • Built with TypeScript for improved type safety and easier integration with your existing projects
  • Fully tested with Vitest and React Testing Library to ensure reliability and maintainability

Installation

You can install Reactivous using npm or yarn:

npm install reactivous

# or

yarn add reactivous

Usage

To use Reactivous in your project, simply import the functions or hooks you need and start using them in your code:

import { useArray } from 'reactivous'

function MyComponent() {
  const myArray = useArray([])

  return (
    <ul>{myArray.state.map(item => <li>{item}</li>)}</ul>
  )
}

Hooks

Reactivous includes several custom hooks to help you manage state and handle common tasks in your React components. Here are some examples:

useArray

The useArray hook provides a simple way to manage an array of values in your component's state. It returns an instance that contain the state of array and a set of methods to manipulate the array.

import { useArray } from 'reactivous';

function FruitsList() {
  const { state, remove, push, update } = useArray(['apple', 'banana', 'orange']);

  return (
    <div>
      <ul>
        {state.map((value,index) => (
          <li key={index}>{value}</li>
        ))}
      </ul>
      <button onClick={() => push('grape')}>Add Grape</button>
      <button onClick={() => remove(1)}>Remove Second Fruit</button>
      <button onClick={() => update(0, 'pineapple')}>Update Apple</button>
    </div>
  );
}

export default FruitsList

useObjectsArray

The useObjectsArray hook is similar to useArray, but it's designed to work with arrays of objects(records, dictionaries). It provide two additional methods: removeAll and updateAll. They get a key(looks like { id: 'qazwsxedc' }) of desired object in order to find it and then delete or update all objects that contain the given key.

import { useObjectsArray } from 'reactivous';

function FruitsList() {
  const fruits = [{ title: 'apple' }, { title: 'banana' }, { title: 'orange' }]
  const { state,
     removeAll, 
     push, 
     updateAll 
    } = useObjectsArray(fruits);

  return (
    <div>
      <ul>
        {state.map((value, index) => (
          <li key={index}>{value.title}</li>
        ))}
      </ul>
      <button onClick={() => push({ title: 'grape' })}>Add Grape</button>
      <button onClick={() => removeAll({ title: 'grape'})}>Remove All Grapes</button>
      <button onClick={() => updateAll({ title: 'apple' }, { title: 'pineapple' })}>Update Apple</button>
    </div>
  );
}

export default FruitsList

License

Reactivous is MIT licensed. See the LICENSE file for details.