import { DashboardFolder } from '.prisma/client' import { Button, Editable, EditableInput, EditablePreview, MenuItem, useDisclosure, Text, VStack, IconButton, Menu, MenuButton, MenuList, useToast, SkeletonText, SkeletonCircle, WrapItem, } from '@chakra-ui/react' import { useDroppable } from '@dnd-kit/core' import { FolderIcon, MoreVerticalIcon } from 'assets/icons' import { ConfirmModal } from 'components/modals/ConfirmModal' import { useRouter } from 'next/router' import React from 'react' import { deleteFolder, updateFolder } from 'services/folders' export const FolderButton = ({ folder, onFolderDeleted, onFolderRenamed, }: { folder: DashboardFolder onFolderDeleted: () => void onFolderRenamed: (newName: string) => void }) => { const router = useRouter() const { setNodeRef, isOver } = useDroppable({ id: folder.id.toString(), }) const { isOpen, onOpen, onClose } = useDisclosure() const toast = useToast({ position: 'top-right', status: 'error', }) const onDeleteClick = async () => { const { error } = await deleteFolder(folder.id) return error ? toast({ title: "Couldn't delete the folder", description: error.message, }) : onFolderDeleted() } const onRenameSubmit = async (newName: string) => { if (newName === '' || newName === folder.name) return const { error } = await updateFolder(folder.id, { name: newName }) return error ? toast({ title: 'An error occured', description: error.message }) : onFolderRenamed(newName) } const handleClick = () => { router.push(`/typebots/folders/${folder.id}`) } return ( ) } export const ButtonSkeleton = () => ( )