import React, { useState, useEffect, useRef, useCallback } from 'react'; import clsx from 'clsx'; import { useTranslation } from 'react-i18next'; import { useContactFolders, useCreateContactFolder, useUpdateContactFolder, useDeleteContactFolder, useMoveContactToFolder, } from '@/api/hooks'; import { buildFolderTree, type ContactFolderTreeNode } from '@/api/contactFolders'; import { ChevronRight, Folder, Pencil, Plus, Tag, Trash2, Users } from 'lucide-react'; export type ContactFilter = 'all' | 'company' | 'person' | `tag:${string}` | `folder:${string}`; export interface ContactFolderTreeProps { selectedFilter: ContactFilter; onSelect: (filter: ContactFilter) => void; tags: string[]; loading?: boolean; contacts?: { id: string; displayname: string; type: string; folder_id?: string | null }[]; } // Icons const icon = (IconComp: React.ElementType, cls = 'w-4 h-4') => (