EasyJavaScriptTypeScript

useToggle Hook

ReactHooksBoolean

Implement useToggle(initial) that returns [getValue, toggle, setValue]:

  • getValue() — returns the current boolean.
  • toggle() — flips the boolean.
  • setValue(v) — sets to an explicit boolean.

solve(initial, ops) drives the hook and returns the state after each op.

Ops: { type: 'toggle' } or { type: 'set', value: boolean }.

Sample tests

Test #1Two toggles return to start
Input: [false,[{"type":"toggle"},{"type":"toggle"}]]
Output: [true,false]
Test #2Set then toggle
Input: [true,[{"type":"set","value":false},{"type":"toggle"}]]
Output: [false,true]
Test #3Set to same value twice
Input: [false,[{"type":"set","value":true},{"type":"set","value":true}]]
Output: [true,true]
Test #4Three toggles
Input: [false,[{"type":"toggle"},{"type":"toggle"},{"type":"toggle"}]]
Output: [true,false,true]
Test #5Set twice then toggle
Input: [true,[{"type":"set","value":false},{"type":"set","value":false},{"type":"toggle"}]]
Output: [false,false,true]