import { Details2Svg } from '../../_shared/svg/Details2Svg'; import AddSvg from '../../_shared/svg/AddSvg'; import { NavItemOptionsPopup } from './NavItemOptionsPopup'; import { NewPagePopup } from './NewPagePopup'; import { IFolder } from '$app_reducers/folders/slice'; import { useFolderEvents } from './FolderItem.hooks'; import { IPage } from '$app_reducers/pages/slice'; import { PageItem } from './PageItem'; import { Button } from '../../_shared/Button'; import { RenamePopup } from './RenamePopup'; import { useEffect, useRef, useState } from 'react'; import { DropDownShowSvg } from '../../_shared/svg/DropDownShowSvg'; import { ANIMATION_DURATION } from '../../_shared/constants'; export const FolderItem = ({ folder, pages, onPageClick, }: { folder: IFolder; pages: IPage[]; onPageClick: (page: IPage) => void; }) => { const { showPages, onFolderNameClick, showFolderOptions, onFolderOptionsClick, showNewPageOptions, onNewPageClick, showRenamePopup, startFolderRename, changeFolderTitle, closeRenamePopup, deleteFolder, duplicateFolder, onAddNewDocumentPage, onAddNewBoardPage, onAddNewGridPage, closePopup, folderHeight, } = useFolderEvents(folder, pages); const [popupY, setPopupY] = useState(0); const el = useRef(null); useEffect(() => { if (el.current) { const { top } = el.current.getBoundingClientRect(); setPopupY(top); } }, [showFolderOptions, showNewPageOptions, showRenamePopup]); return (
onFolderNameClick()} className={'flex cursor-pointer items-center justify-between rounded-lg px-4 py-2 hover:bg-surface-2'} >
{pages.map((page, index) => ( onPageClick(page)}> ))}
{showFolderOptions && ( startFolderRename()} onDeleteClick={() => deleteFolder()} onDuplicateClick={() => duplicateFolder()} onClose={() => closePopup()} top={popupY - 124 + 40} > )} {showNewPageOptions && ( onAddNewDocumentPage()} onBoardClick={() => onAddNewBoardPage()} onGridClick={() => onAddNewGridPage()} onClose={() => closePopup()} top={popupY - 124 + 40} > )} {showRenamePopup && ( changeFolderTitle(newTitle)} onClose={closeRenamePopup} top={popupY - 124 + 40} > )}
); };