MediumPro challengeJavaScriptTypeScript

useLocalStorage Hook

ReactHooksStorage

Implement useLocalStorage(key, initialValue, storage) returning
[get, set]. storage is a Map mocking localStorage.

  • On init: read from storage; if absent, use initialValue.
  • On set: update internal state AND write JSON to storage.

solve(key, initial, ops) returns final { state, storage }.

Sample tests

Test #1Set value
Input: ["count",0,[{"type":"set","value":5}]]
Output: {"state":5,"storage":{"count":"5"}}
Test #2No ops, no write
Input: ["x",1,[]]
Output: {"state":1,"storage":{}}
Test #3Last write wins
Input: ["k",0,[{"type":"set","value":1},{"type":"set","value":2}]]
Output: {"state":2,"storage":{"k":"2"}}
Test #4Initial overridden
Input: ["n",10,[{"type":"set","value":100}]]
Output: {"state":100,"storage":{"n":"100"}}
Test #5Set to same value still writes
Input: ["t",0,[{"type":"set","value":0}]]
Output: {"state":0,"storage":{"t":"0"}}