Files
30-seconds-of-code/snippets/Toggle.md
Angelos Chalaris f39deb9522 Update to React 18
2023-04-14 20:32:31 +03:00

1.0 KiB

title, tags, cover, firstSeen, lastUpdated
title tags cover firstSeen lastUpdated
Toggle components,state cows 2018-10-27T20:35:37+03:00 2020-11-16T16:50:57+02:00

Renders a toggle component.

  • Use the useState() hook to initialize the isToggledOn state variable to defaultToggled.
  • Render an <input> and bind its onClick event to update the isToggledOn state variable, applying the appropriate className to the wrapping <label>.
.toggle input[type="checkbox"] {
  display: none;
}

.toggle.on {
  background-color: green;
}

.toggle.off {
  background-color: red;
}
const Toggle = ({ defaultToggled = false }) => {
  const [isToggleOn, setIsToggleOn] = React.useState(defaultToggled);

  return (
    <label className={isToggleOn ? 'toggle on' : 'toggle off'}>
      <input
        type="checkbox"
        checked={isToggleOn}
        onChange={() => setIsToggleOn(!isToggleOn)}
      />
      {isToggleOn ? 'ON' : 'OFF'}
    </label>
  );
};

ReactDOM.createRoot(document.getElementById('root')).render(
  <Toggle />
);