import { Download, ExternalLinkIcon, FileText } from 'lucide-react'; import { FunctionComponent } from 'react'; import { ImageOCR } from '@/common/components/molecules/ImageOCR/ImageOCR'; import { ImageViewer } from '@/common/components/organisms/ImageViewer/ImageViewer'; import { ctw } from '@/common/utils/ctw/ctw'; import { isCsv } from '@/common/utils/is-csv/is-csv'; import { isPdf } from '@/common/utils/is-pdf/is-pdf'; import { useDocumentsToolbarLogic } from '@/pages/Entity/components/Case/hooks/useDocumentsToolbarLogic/useDocumentsToolbarLogic'; import { Tooltip } from '@/common/components/atoms/Tooltip/Tooltip'; import { TooltipContent } from '@/common/components/atoms/Tooltip/Tooltip.Content'; import { TooltipTrigger } from '@/common/components/atoms/Tooltip/Tooltip.Trigger'; import { TooltipProvider } from '@/common/components/atoms/Tooltip/Tooltip.Provider'; // Custom tooltip wrapper to avoid repetition const ToolbarTooltip: FunctionComponent<{ label: string; description?: string; children: React.ReactNode; }> = ({ label, description, children }) => ( {children}
{label}
{description &&

{description}

}
); // Button style to ensure consistency const toolbarButtonClass = ` relative btn btn-circle btn-ghost btn-sm bg-base-300/30 hover:bg-base-300/70 text-[0.688rem] focus:outline-primary backdrop-filter backdrop-blur-sm transition-all duration-200 transform hover:scale-105 shadow-sm hover:shadow-md `; export const DocumentsToolbar: FunctionComponent<{ image: { id: string; imageUrl: string; fileType: string; fileName: string }; isLoading?: boolean; hideOpenExternalButton?: boolean; onRotateDocument: () => void; onOpenDocumentInNewTab: (id: string) => void; shouldDownload: boolean; onOcrPressed?: () => void; isOCREnabled: boolean; isLoadingOCR: boolean; fileToDownloadBase64: string; }> = ({ image, isLoading, hideOpenExternalButton, onRotateDocument, onOpenDocumentInNewTab, onOcrPressed, shouldDownload, isLoadingOCR, isOCREnabled, fileToDownloadBase64, }) => { const { onOpenInNewTabClick } = useDocumentsToolbarLogic({ imageId: image?.id, hideOpenExternalButton, onOpenDocumentInNewTab, }); return (
{/* Toolbar Button Group */}
{/* OCR Button */}
AI OCR
{/* Open in New Tab Button */} {!hideOpenExternalButton && !isLoading && image?.id && (
Open
)} {/* Rotate Document Button */} {!isPdf(image) && !isCsv(image) && !isLoading && (
Rotate
)} {/* Download Document Button */}
Download
{/* Zoom Document Button */} {!isLoading && (
Zoom
)}
{/* Subtle bounce indicator to draw attention */}
); };