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

reactlogic-hooks-library

v1.0.1

Published

A React hooks based components logic library

Downloads

4

Readme

reACTLogic is a library of React's components logic which is based on the modern and cool React approach - hooks!

Table of contents

  1. Motivation
  2. Installation
  3. API
  4. Contributor list

Motivation

Since React Hooks brings us an easy and maintainlable way to share and reuse component's logic between the entirely app it became clear that custom hooks are the future of React. This library is a truly concept of "create once, use everywhere"!

Installation

npm install reactlogic-hooks-library

API

This documentation with additional code snippets is also available here

useCheckbox

Returns boolean value from checkbox input.

Usage

const input = useCheckbox()

input[0]: boolean
input[1]: function: e => setValue(e.target.checked)
}

useInput

Returns provided value as string.

Usage

const input = useInput()

input[0]: string
input[1]: function: e => setValue(e.target.value)
}

useScroll({element?, debounce?, delayTime?, targetElement?})

element

Type: RefObject<HTMLElement>

Default: window

A React ref element of which scroll event will be measured.

debounce

Type: Boolean

If true then scroll event will use debounce function as delay, otherwise throttle function will be set. If this option is ommited, throttle is set as default.

delayTime

Type: number

Default: 0 ms

A number of milliseconds for delay function.

Usage

const scroll = useScroll({
	element?: ReactRefElement, 
	throttleTime?: number(ms),
	targetElement?: ReactRefElement
})

scroll.x: number
scroll.y: number
scroll.isTop: boolean
scroll.isBottom: boolean
scroll.isTargetReached: boolean

useSearch({data, search, type?, caseSensitive?})

data

Type: Array<string | number | object>

An array of data that will be filtered for a match.

search

Type: string | number

A string or number to be searched for.

type

Type: string<keyof data>

When input data is an array of objects, you have to specify which property include to search for. It should be string which is key of specified data objects.

caseSensitive

Type: boolean

An addition property which distinguish queries by case sensitive. Default value is set to true.

Usage

const search = useSearch({
	data: array, 
	search: string,
	type: string
})

search.value: array

useSlider(indexLimit, changeSpeed?)

indexLimit

Type: number

A number of slider length.

changeSpeed

Type: number

Default: 2000 ms

A number of miliseconds between each slide change.

Usage

const slider = useSlider(changeSpeed?: number(ms), indexLimit: number)

slider.isPlaying: boolean
slider.setPlaying: function: (boolean) => isPlaying
slider.togglePlaying: function: () => !isPlaying
slider.nextSlide: function: () => index + 1
slider.prevSlide: function: () => index - 1
slider.index: number

useRect(refEl?)

RefEl

Type: RefObject<HTMLElement>

Default: window

A React ref element of which rect is counted. Properties describing the overall border-box in pixels. Properties other than width and height are relative to the top-left o the viewport. More info here.

Usage

const rect = useRect(divRef: ReactRefElement)

rect.width: number
rect.height: number
rec.top: number
rect.bottom: number
rect.right: number
rect.left: number

Contributors