useStateWithHistory
Manage a state value with it's entire history of updates.
The useStateWithHistory
hook is helpful when you want to manage a state value along with it’s entire history of updates.
The hook returns the latest value of state and provide handlers to perform redo
, undo
, set
and reset
operations.
useStateWithHistory
Count Value: 0
Usage
Import the hook from @abhushanaj/react-hooks
and use in required component.
import { useStateWithHistory } from '@abhushanaj/react-hooks';
function App() { const [count, { canRedo, canUndo, redo, undo, set, reset }] = useStateWithHistory(0);
const addByOne = () => { set(count + 1); };
const subtractByTwo = () => { set(count - 2); };
const multiplyByThree = () => { set(count * 3); };
const divideByTwo = () => { set(count / 3); };
return ( <div> <div> <p>Count Value: {count}</p> </div>
<div> <button onClick={addByOne}>+1</button> <button onClick={subtractByTwo}>-2</button> <button onClick={multiplyByThree}>*3</button> <button onClick={divideByTwo}>/2</button> </div>
<div> <button onClick={undo} disabled={!canUndo}> Undo </button> <button onClick={redo} disabled={!canRedo}> Redo </button> <button onClick={reset}>Reset</button> </div> </div> );}
export default App;
API Reference
Parameters
Parameter | Type | Description | Default |
---|---|---|---|
initialValue | T | The initial value of the state. | N/A |
Return Value
The hook returns a tuple with [value, valueUpdateOptions]
.
Parameter | Type | Description | Default |
---|---|---|---|
value | T | The current value of state. | N/A |
valueUpdateOptions | ValueUpdateOptions | The controls for the state with history. | N/A |
Types Reference
1. ValueUpdateOptions
The control options for useStateWithHistory
.
Parameter | Type | Description | Default |
---|---|---|---|
set | (newValue: T)=>void | Function to set the new value for state. | N/A |
redo | ()=>void | Function to redo the next state. | N/A |
undo | ()=>void | Function to undo the previous state. | N/A |
reset | ()=>void | Function to reset state history and go back to initial state. | N/A |
canUndo | boolean | Boolean indicating whether undo action is available. | N/A |
canRedo | boolean | Boolean indicating whether redo action is available. | N/A |