diff --git a/src/pages/Viewer.tsx b/src/pages/Viewer.tsx index 1b2bb5f..0f3eca9 100644 --- a/src/pages/Viewer.tsx +++ b/src/pages/Viewer.tsx @@ -1,46 +1,25 @@ -import { useNavigate } from 'react-router-dom'; -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'; -import { ViewerControls } from '@/components/ViewerControls'; -import { InspectionChecklist } from '@/components/InspectionChecklist'; -import { FineTuningControls } from '@/components/FineTuningControls'; -import { MeasurementsList } from '@/components/MeasurementsList'; -import { ScreenshotGallery } from '@/components/ScreenshotGallery'; -import { ComparePanel } from '@/components/ComparePanel'; -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'; +import { useNavigate } from "react-router-dom"; +import { ArrowLeft, Glasses, Box, Ruler, FileText } from "lucide-react"; +import { Button } from "@/components/ui/button"; +import { useModelStore } from "@/stores/useModelStore"; +import { ModelViewerCanvas } from "@/components/three/ModelViewer"; +import { ViewerControls } from "@/components/ViewerControls"; +import { InspectionChecklist } from "@/components/InspectionChecklist"; +import { FineTuningControls } from "@/components/FineTuningControls"; +import { MeasurementsList } from "@/components/MeasurementsList"; +import { ScreenshotGallery } from "@/components/ScreenshotGallery"; +import { useEffect } from "react"; +import { toast } from "sonner"; +import { ScrollArea } from "@/components/ui/scroll-area"; +import { Separator } from "@/components/ui/separator"; const Viewer = () => { const navigate = useNavigate(); - 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]); + const { model, xrSupported } = useModelStore(); useEffect(() => { if (!model) { - navigate('/'); + navigate("/"); } }, [model, navigate]); @@ -48,10 +27,10 @@ const Viewer = () => { const handleEnterXR = async () => { if (!xrSupported) { - toast.error('WebXR não é suportado neste navegador. Use o navegador do Meta Quest 3.'); + toast.error("WebXR não é suportado neste navegador. Use o navegador do Meta Quest 3."); return; } - navigate('/xr'); + navigate("/xr"); }; return ( @@ -59,61 +38,30 @@ const Viewer = () => { {/* Top bar */}
-

- TrackkSteelXR + TrackSteelXR

-
- - - -
+
{/* 3D Canvas with floating controls */} -
+
- {/* Compare panel */} - {compareMode && ( -
- -
- )} - {/* Side panel */}
@@ -150,7 +94,8 @@ const Viewer = () => {

- Use o mouse para orbitar, scroll para zoom. Controle a opacidade e o modo de renderização nos controles flutuantes. + Use o mouse para orbitar, scroll para zoom. Controle a opacidade e o modo de renderização nos + controles flutuantes.