import React, { useCallback, useEffect, useState } from 'react'; import { DropdownItem, DropdownMenu, DropdownToggle, Dropdown, } from 'reactstrap'; import { BookmarkFolderItems } from '~/interfaces/bookmark-info'; import { useSWRxBookamrkFolderAndChild } from '~/stores/bookmark-folder'; import TriangleIcon from '../Icons/TriangleIcon'; type Props ={ item: BookmarkFolderItems } const BookmarkFolderMenuItem = (props: Props):JSX.Element => { const { item } = props; const [isOpen, setIsOpen] = useState(false); const { data: childFolders, mutate: mutateChildFolders } = useSWRxBookamrkFolderAndChild(item._id); useEffect(() => { if (isOpen) { mutateChildFolders(); } }, [isOpen, mutateChildFolders]); const onMouseEnterHandler = useCallback(() => { setIsOpen(true); }, []); const onMouseLeaveHandler = useCallback(() => { setIsOpen(false); }, []); const toggleHandler = useCallback(() => { setIsOpen(!isOpen); }, [isOpen]); return ( {item.name} { childFolders != null && ( {childFolders?.map(child => (
{child.children.length > 0 ? (
) : ( {child.name} )}
))}
) }
); }; export default BookmarkFolderMenuItem;