Spoiler.jsx 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import React, { useState } from "react";
  2. const Spoiler = ({ header = "click me", open, children }) => {
  3. const [isOpen, setIsOpen] = useState(open);
  4. return (
  5. <div>
  6. <div
  7. onClick={() => {
  8. setIsOpen(!isOpen);
  9. }}
  10. >
  11. <span>{header}</span>
  12. {isOpen && <div>{children}</div>}
  13. </div>
  14. </div>
  15. );
  16. };
  17. const SpoilerParent = () => {
  18. return (
  19. <div>
  20. <div className="header">
  21. Контент 1
  22. <p>
  23. лорем ипсум траливали и тп.лорем ипсум траливали и тп.лорем
  24. ипсум траливали и тп.лорем ипсум траливали и тп.лорем ипсум
  25. траливали и тп.
  26. </p>
  27. </div>
  28. <Spoiler>
  29. <div className="spoilerBlock">
  30. Контент 2
  31. <p>
  32. лорем ипсум траливали и тп.лорем ипсум траливали и
  33. тп.лорем ипсум траливали и тп.лорем ипсум траливали и
  34. тп.лорем ипсум траливали и тп.
  35. </p>
  36. </div>
  37. </Spoiler>
  38. </div>
  39. );
  40. };
  41. export default SpoilerParent;