This commit is contained in:
gpt-engineer-app[bot]
2026-02-27 01:14:49 +00:00
parent 8cced1a146
commit cb912b8f62
5 changed files with 92 additions and 3 deletions
+26 -2
View File
@@ -1,10 +1,23 @@
import { Eye, Grid3X3, Ruler, Trash2 } from 'lucide-react';
import { Eye, Grid3X3, Ruler, Trash2, Camera } from 'lucide-react';
import { Slider } from '@/components/ui/slider';
import { Button } from '@/components/ui/button';
import { useModelStore } from '@/stores/useModelStore';
import { useCallback } from 'react';
import { toast } from 'sonner';
export function ViewerControls() {
const { opacity, setOpacity, renderMode, setRenderMode, measureMode, setMeasureMode, measurements, clearMeasurements, measurePoints } = useModelStore();
const { opacity, setOpacity, renderMode, setRenderMode, measureMode, setMeasureMode, measurements, clearMeasurements, measurePoints, addScreenshot } = useModelStore();
const handleScreenshot = useCallback(() => {
const canvas = document.querySelector('canvas');
if (!canvas) {
toast.error('Canvas não encontrado');
return;
}
const dataUrl = canvas.toDataURL('image/png');
addScreenshot(dataUrl);
toast.success('Screenshot capturado!');
}, [addScreenshot]);
return (
<div className="absolute bottom-4 left-4 z-10 flex items-end gap-3">
@@ -69,6 +82,17 @@ export function ViewerControls() {
</Button>
)}
</div>
{/* Screenshot */}
<Button
variant="outline"
size="sm"
className="gap-2 h-9"
onClick={handleScreenshot}
>
<Camera className="h-3.5 w-3.5" />
<span className="font-mono text-xs">Capturar</span>
</Button>
</div>
);
}