index.tsx 755 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import React, { useState, useEffect } from 'react';
  2. import {
  3. Wrapper, Label, ContentWrapper, Content,
  4. } from './styled';
  5. type Props = {
  6. label: React.ReactNode;
  7. children?: React.ReactNode;
  8. isActive?: boolean;
  9. };
  10. const Collapse: React.FunctionComponent<Props> = ({
  11. label = '',
  12. children = '',
  13. isActive = false,
  14. }: Props) => {
  15. const [isCollapse, setCollapse] = useState(true);
  16. useEffect(() => {
  17. setCollapse(!isActive);
  18. }, [isActive]);
  19. return (
  20. <Wrapper>
  21. <Label>
  22. {label}
  23. </Label>
  24. { children ? (
  25. <ContentWrapper isCollapse={isCollapse}>
  26. <Content>
  27. {children}
  28. </Content>
  29. </ContentWrapper>
  30. ) : null}
  31. </Wrapper>
  32. );
  33. };
  34. export default Collapse;