UNPKG

use-silly-hooks

Version:

A collection of custom React hooks to simplify state management in your applications. 🚀

275 lines (208 loc) 7.92 kB
# use-silly-hooks A collection of custom React hooks to simplify state management in your applications. 🚀 ## Table of Contents - [use-silly-hooks](#use-silly-hooks) - [Table of Contents](#table-of-contents) - [Installation](#installation) - [npm](#npm) - [yarn](#yarn) - [pnpm](#pnpm) - [Getting Started](#getting-started) - [Hooks](#hooks) - [useBoolean](#useboolean) - [useString](#usestring) - [useNumber](#usenumber) - [useArray](#usearray) - [useObject](#useobject) - [Examples](#examples) - [useBoolean Example](#useboolean-example) - [useString Example](#usestring-example) - [useNumber Example](#usenumber-example) - [useArray Example](#usearray-example) - [useObject Example](#useobject-example) ## Installation You can install `use-silly-hooks` using your favorite package manager: ### npm ```sh npm install use-silly-hooks ``` ### yarn ```sh yarn add use-silly-hooks ``` ### pnpm ```sh pnpm add use-silly-hooks ``` ## Getting Started To start using the hooks, simply import them into your React component: ```tsx import React from 'react'; import { useBoolean, useString, useNumber, useArray, useObject } from 'use-silly-hooks'; const App = () => { const [isVisible, setIsVisible, setTrue, setFalse, toggle, resetBoolean] = useBoolean(false); const [name, setName, transformName, resetName] = useString('John Doe'); const [count, setCount, increment, decrement, multiply, divide, resetCount, setMin, setMax] = useNumber(0); const [items, setItems, pushItem, popItem, shiftItem, unshiftItem, clearItems, resetItems] = useArray([]); const [user, setUser, setProperty, clearUser, resetUser, mergeUser] = useObject({ name: 'John', age: 30 }); return <div>{/* Your component code */}</div>; }; export default App; ``` ## Hooks ### useBoolean A custom hook that provides a boolean state with utility functions to manipulate it. ```tsx const [value, setValue, setTrue, setFalse, toggle, reset] = useBoolean(initialValue); ``` - `value`: The current boolean state. - `setValue`: A function to set the state. - `setTrue`: A function to set the state to true. - `setFalse`: A function to set the state to false. - `toggle`: A function to toggle the state. - `reset`: A function to reset the state to the initial value. ### useString A custom hook that provides a string state with utility functions to manipulate it. ```tsx const [value, setValue, transform, reset] = useString(initialValue); ``` - `value`: The current string state. - `setValue`: A function to set the state. - `transform`: A function to transform the string state based on the specified type. - `reset`: A function to reset the state to the initial value. ### useNumber A custom hook that provides a number state with utility functions to manipulate it. ```tsx const [value, setValue, increment, decrement, multiply, divide, reset, setMin, setMax] = useNumber(initialValue); ``` - `value`: The current number state. - `setValue`: A function to set the state. - `increment`: A function to increment the state by a given step. - `decrement`: A function to decrement the state by a given step. - `multiply`: A function to multiply the state by a given factor. - `divide`: A function to divide the state by a given divisor. - `reset`: A function to reset the state to the initial value. - `setMin`: A function to set the state to the maximum of the current state and a given minimum value. - `setMax`: A function to set the state to the minimum of the current state and a given maximum value. ### useArray A custom hook that provides an array state with utility functions to manipulate it. ```tsx const [value, setValue, push, pop, shift, unshift, clear, reset] = useArray(initialValue); ``` - `value`: The current array state. - `setValue`: A function to set the state. - `push`: A function to add an item to the end of the array. - `pop`: A function to remove the last item from the array. - `shift`: A function to remove the first item from the array. - `unshift`: A function to add an item to the beginning of the array. - `clear`: A function to clear the array. - `reset`: A function to reset the array to the initial value. ### useObject A custom hook that provides an object state with utility functions to manipulate it. ```tsx const [value, setValue, setProperty, clear, reset, merge] = useObject(initialValue); ``` - `value`: The current object state. - `setValue`: A function to set the state. - `setProperty`: A function to set a property of the object. - `clear`: A function to clear the object. - `reset`: A function to reset the object to the initial value. - `merge`: A function to merge a new object into the current state. ## Examples ### useBoolean Example ```tsx import React from 'react'; import { useBoolean } from 'use-silly-hooks'; const BooleanExample = () => { const [isVisible, setIsVisible, setTrue, setFalse, toggle, reset] = useBoolean(false); return ( <div> <p>Visible: {isVisible.toString()}</p> <button onClick={setTrue}>Show</button> <button onClick={setFalse}>Hide</button> <button onClick={toggle}>Toggle</button> <button onClick={reset}>Reset</button> </div> ); }; export default BooleanExample; ``` ### useString Example ```tsx import React from 'react'; import { useString } from 'use-silly-hooks'; const StringExample = () => { const [name, setName, transform, reset] = useString('John Doe'); return ( <div> <p>Name: {name}</p> <button onClick={() => transform('uppercase')}>Uppercase</button> <button onClick={() => transform('lowercase')}>Lowercase</button> <button onClick={() => transform('capitalize')}>Capitalize</button> <button onClick={reset}>Reset</button> </div> ); }; export default StringExample; ``` ### useNumber Example ```tsx import React from 'react'; import { useNumber } from 'use-silly-hooks'; const NumberExample = () => { const [count, setCount, increment, decrement, multiply, divide, reset, setMin, setMax] = useNumber(0); return ( <div> <p>Count: {count}</p> <button onClick={() => increment()}>Increment</button> <button onClick={() => decrement()}>Decrement</button> <button onClick={() => multiply(2)}>Multiply by 2</button> <button onClick={() => divide(2)}>Divide by 2</button> <button onClick={reset}>Reset</button> <button onClick={() => setMin(5)}>Set Min 5</button> <button onClick={() => setMax(10)}>Set Max 10</button> </div> ); }; export default NumberExample; ``` ### useArray Example ```tsx import React from 'react'; import { useArray } from 'use-silly-hooks'; const ArrayExample = () => { const [items, setItems, push, pop, shift, unshift, clear, reset] = useArray<number>([1, 2, 3]); return ( <div> <p>Items: {items.join(', ')}</p> <button onClick={() => push(4)}>Push 4</button> <button onClick={pop}>Pop</button> <button onClick={shift}>Shift</button> <button onClick={() => unshift(0)}>Unshift 0</button> <button onClick={clear}>Clear</button> <button onClick={reset}>Reset</button> </div> ); }; export default ArrayExample; ``` ### useObject Example ```tsx import React from 'react'; import { useObject } from 'use-silly-hooks'; const ObjectExample = () => { const [user, setUser, setProperty, clear, reset, merge] = useObject({ name: 'John', age: 30 }); return ( <div> <p>User: {JSON.stringify(user)}</p> <button onClick={() => setProperty('name', 'Jane')}>Set Name to Jane</button> <button onClick={() => merge({ age: 25 })}>Merge Age 25</button> <button onClick={clear}>Clear</button> <button onClick={reset}>Reset</button> </div> ); }; export default ObjectExample; ``` Enjoy using `use-silly-hooks`! 🎉 Made with ❤️ by [Bruno Silva](https://github.com/brunos3d).