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:
Siddharth Kumar Sah
2026-04-15 23:11:27 +08:00
parent dd1e2e5ba5
commit a8cca62336
6 changed files with 52 additions and 3 deletions
@@ -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);