123456789101112131415161718192021222324252627282930313233 |
- import React, { useState, useEffect, ReactNode } from 'react';
- import Collapsible from '../collapsible';
- interface NodeCollapsibleProps {
- key?: string;
- open?: boolean;
- motion?: boolean;
- duration?: number;
- onMotionEnd?: () => void;
- children?: ReactNode
- }
- function NodeCollapsible(props: NodeCollapsibleProps) {
- const { open, children, ...rest } = props;
- const [isOpen, setIsOpen] = useState(props.open);
- useEffect(() => {
- // Why do we need to change isOPen value in setTimeout?
- // Because when NodeCollapsible ComponentDidMount, the domHeight in Collapsible has not been given
- setTimeout(() => {
- setIsOpen(!props.open);
- }, 0);
- }, []);
-
- return (<Collapsible
- {...rest}
- isOpen={isOpen}
- >
- {children}
- </Collapsible>);
- }
- export default NodeCollapsible;
|