This commit is contained in:
gpt-engineer-app[bot]
2026-02-27 03:00:17 +00:00
parent 2d39fcf68d
commit 407e6c9f13
4 changed files with 515 additions and 6 deletions
+32 -3
View File
@@ -1,5 +1,5 @@
import { useNavigate } from 'react-router-dom';
import { ArrowLeft, Glasses, Box, Ruler, FileText, Columns2 } from 'lucide-react';
import { ArrowLeft, Glasses, Box, Ruler, FileText, Columns2, Download } from 'lucide-react';
import { Button } from '@/components/ui/button';
import { useModelStore } from '@/stores/useModelStore';
import { ModelViewerCanvas } from '@/components/three/ModelViewer';
@@ -9,14 +9,34 @@ import { FineTuningControls } from '@/components/FineTuningControls';
import { MeasurementsList } from '@/components/MeasurementsList';
import { ScreenshotGallery } from '@/components/ScreenshotGallery';
import { ComparePanel } from '@/components/ComparePanel';
import { useEffect } from 'react';
import { useEffect, useCallback } from 'react';
import { toast } from 'sonner';
import { ScrollArea } from '@/components/ui/scroll-area';
import { Separator } from '@/components/ui/separator';
import { generateInspectionReport } from '@/lib/generateReport';
const Viewer = () => {
const navigate = useNavigate();
const { model, xrSupported, compareMode, setCompareMode } = useModelStore();
const { model, xrSupported, compareMode, setCompareMode, checklist, measurements, screenshots, fineTuning } = useModelStore();
const handleExportPDF = useCallback(async () => {
if (!model) return;
toast.info('Gerando relatório PDF…');
try {
await generateInspectionReport({
fileName: model.fileName,
fileSize: model.fileSize,
fineTuning,
checklist,
measurements,
screenshots,
});
toast.success('Relatório exportado com sucesso!');
} catch (err) {
console.error(err);
toast.error('Erro ao gerar o relatório.');
}
}, [model, fineTuning, checklist, measurements, screenshots]);
useEffect(() => {
if (!model) {
@@ -51,6 +71,15 @@ const Viewer = () => {
</div>
<div className="flex items-center gap-2">
<Button
variant="outline"
size="sm"
className="gap-2"
onClick={handleExportPDF}
>
<Download className="h-4 w-4" />
Exportar PDF
</Button>
<Button
variant={compareMode ? 'default' : 'outline'}
size="sm"