Changes
This commit is contained in:
@@ -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>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user