mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
feat(erase-object): auto-center compare slider at erased region
Track the painted mask centroid and initialise the before/after slider at that position so the result is immediately visible without manual dragging.
This commit is contained in:
@@ -14,6 +14,7 @@ interface EraseObjectSettingsProps {
|
||||
hasStrokes: boolean;
|
||||
brushSize: number;
|
||||
onBrushSizeChange: (size: number) => void;
|
||||
onMaskCenter?: (centerPct: number) => void;
|
||||
}
|
||||
|
||||
export function EraseObjectSettings({
|
||||
@@ -21,6 +22,7 @@ export function EraseObjectSettings({
|
||||
hasStrokes,
|
||||
brushSize,
|
||||
onBrushSizeChange: setBrushSize,
|
||||
onMaskCenter,
|
||||
}: EraseObjectSettingsProps) {
|
||||
const { files, processing, error, setProcessing, setError, setProcessedUrl, setSizes } =
|
||||
useFileStore();
|
||||
@@ -41,6 +43,12 @@ export function EraseObjectSettings({
|
||||
const maskBlob = await eraserRef.current.exportMask();
|
||||
if (!maskBlob) return;
|
||||
|
||||
// Record where the user painted so the comparison slider starts at that location
|
||||
const maskCenter = eraserRef.current.getMaskCenter();
|
||||
if (maskCenter !== null && onMaskCenter) {
|
||||
onMaskCenter(maskCenter);
|
||||
}
|
||||
|
||||
setError(null);
|
||||
setDownloadUrl(null);
|
||||
setProcessing(true);
|
||||
|
||||
Reference in New Issue
Block a user