content-error.tsx 870 B

12345678910111213141516171819202122232425262728293031
  1. import style from "./content-error.module.css"
  2. import { type JSX, createSignal } from "solid-js"
  3. import { createOverflow } from "./common"
  4. interface Props extends JSX.HTMLAttributes<HTMLDivElement> {
  5. expand?: boolean
  6. }
  7. export function ContentError(props: Props) {
  8. const [expanded, setExpanded] = createSignal(false)
  9. const overflow = createOverflow()
  10. return (
  11. <div
  12. class={style.root}
  13. data-expanded={expanded() || props.expand === true ? true : undefined}
  14. >
  15. <div data-section="content" ref={overflow.ref}>
  16. {props.children}
  17. </div>
  18. {((!props.expand && overflow.status) || expanded()) && (
  19. <button
  20. type="button"
  21. data-element-button-text
  22. onClick={() => setExpanded((e) => !e)}
  23. >
  24. {expanded() ? "Show less" : "Show more"}
  25. </button>
  26. )}
  27. </div>
  28. )
  29. }