import React, { useCallback, useState } from 'react'; import { useTranslation } from 'next-i18next'; import { addNewFolder } from '~/client/util/bookmark-utils'; import { toastError } from '~/client/util/toastr'; import { BookmarkFolderNameInput } from '~/components/Bookmarks/BookmarkFolderNameInput'; import { BookmarkFolderTree } from '~/components/Bookmarks/BookmarkFolderTree'; import { useSWRxBookmarkFolderAndChild } from '~/stores/bookmark-folder'; import { useCurrentUser } from '~/stores/context'; export const BookmarkContents = (): JSX.Element => { const { t } = useTranslation(); const [isCreateAction, setIsCreateAction] = useState(false); const { data: currentUser } = useCurrentUser(); const { mutate: mutateBookmarkFolders } = useSWRxBookmarkFolderAndChild(currentUser?._id); const onClickNewBookmarkFolder = useCallback(() => { setIsCreateAction(true); }, []); const cancel = useCallback(() => { setIsCreateAction(false); }, []); const create = useCallback(async(folderName: string) => { if (folderName.trim() === '') { return cancel(); } try { await addNewFolder(folderName.trim(), null); await mutateBookmarkFolders(); setIsCreateAction(false); } catch (err) { toastError(err); } }, [cancel, mutateBookmarkFolders]); return (
{isCreateAction && (
)}
); };