Facebook Pixel

Toggle button with custom hook

React.js
easy
20 mins

Create a React component that displays a toggle button which switches its label between "ON" and "OFF" each time it is clicked. The state should be managed using a custom hook called useToggle.

Requirements

  • Use functional components only.
  • Implement a custom hook useToggle(initialValue) that returns:
    • A boolean state
    • A toggle function
  • Display "ON" or "OFF" on a button based on the current state.
  • On button click, toggle the state.
  • The initial state must be "OFF"

Edge Case & Constraints

1. Initial value is false

  • Initial value of the hook should be false

Example:

const [value, toggle] = useToggle(false); expect(value).toBe(false);

2. Multiple toggles in a row

  • Toggling multiple times in a row should flip the state correctly.
  • Ensure true → false → true → false works consistently.

3. Used in multiple components

  • If useToggle is reused in two components, toggling one should not affect the other.
  • Each instance should manage its own state independently.

4. Re-rendering the parent

  • Re-rendering the parent component should not reset the toggle state.
  • State should persist unless the component is unmounted.

5. Event handler integrity

  • The toggle function should be a stable function (same reference if not changed).

Test Cases

-data-testid="toggle-button" : Selects the button element enabling targeted interaction and assertions in tests.

Preview what you need to build

Companies:

meta
uber
paypal

Solve Similar questions 🔥

Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.