import type * as DialogPrimitive from '@radix-ui/react-dialog'; import { FolderIcon, HomeIcon } from 'lucide-react'; import { trpc } from '@documenso/trpc/react'; import type { TFolderWithSubfolders } from '@documenso/trpc/server/folder-router/schema'; import { Button } from '@documenso/ui/primitives/button'; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from '@documenso/ui/primitives/dialog'; import { useToast } from '@documenso/ui/primitives/use-toast'; export type FolderMoveDialogProps = { foldersData: TFolderWithSubfolders[] | undefined; folder: TFolderWithSubfolders | null; isOpen: boolean; onOpenChange: (open: boolean) => void; } & Omit; export const FolderMoveDialog = ({ foldersData, folder, isOpen, onOpenChange, }: FolderMoveDialogProps) => { const { toast } = useToast(); const { mutateAsync: moveFolder } = trpc.folder.moveFolder.useMutation(); const handleMoveFolder = async (targetFolderId: number | null) => { if (!folder) return; try { await moveFolder({ id: folder.id, parentId: targetFolderId, }); onOpenChange(false); toast({ title: 'Folder moved successfully', }); } catch (error) { console.error('Error moving folder:', error); toast({ title: 'Failed to move folder', variant: 'destructive', }); } }; return ( Move Folder Select a destination for this folder.
{foldersData && foldersData .filter((f) => f.id !== folder?.id) .map((f) => ( ))}
); };