curriculum/challenges/english/blocks/workshop-toggle-text-app/67cd57e96257ed1fabbe4879.md
NOTE: A useEffect hook was added to call the handleToggleVisibility function when the component renders. You will learn more about the useEffect hook in a future lesson and workshop.
Now would be a good time to see the updated isVisible value.
Below the setIsVisible(!isVisible);, log the isVisible state variable to the console.
Open up the console and you will notice that the value is not what you expected it to be.
You should use console.log to log the isVisible state variable to the console.
assert.match(code, /console\.log\(\s*isVisible\s*\)/);
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Toggle Visibility</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/18.3.1/umd/react.development.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.3.1/umd/react-dom.development.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/7.26.5/babel.min.js"></script>
<script
data-plugins="transform-modules-umd"
type="text/babel"
src="index.jsx"
></script>
<link rel="stylesheet" href="styles.css" />
</head>
<body>
<div id="root"></div>
<script
data-plugins="transform-modules-umd"
type="text/babel"
data-presets="react"
data-type="module"
>
import { ToggleApp } from "./index.jsx";
ReactDOM.createRoot(document.getElementById("root")).render(<ToggleApp />);
</script>
</body>
</html>
body {
font-family: Arial, sans-serif;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
background-color: #f4f4f4;
}
#toggle-container {
text-align: center;
background: white;
padding: 20px;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
#toggle-button {
padding: 10px 20px;
border: none;
background: #007BFF;
color: white;
border-radius: 5px;
cursor: pointer;
transition: background 0.3s ease;
}
#toggle-button:hover {
background: #0056b3;
}
#message {
margin-top: 20px;
font-size: 1.125rem;
color: #333;
}
const { useState, useEffect } = React;
export const ToggleApp = () => {
const [isVisible, setIsVisible] = useState(false);
--fcc-editable-region--
const handleToggleVisibility = () => {
setIsVisible(!isVisible);
}
--fcc-editable-region--
useEffect(() => {
handleToggleVisibility();
}, [])
return (
<div id="toggle-container">
<button id="toggle-button">Message</button>
{isVisible && <p id="message">I love freeCodeCamp!</p>}
</div>
);
};