Workspace: clicking Confirm & Edit silently hides the source image (splitView forced to 'stitches') #55

Closed
opened 2026-09-02 01:51:15 +00:00 by Mark · 0 comments
Owner

Bug

In the Workspace, when the user clicks Confirm & Edit to enter the digitized state, the canvas's split-view setting silently flips from the default 'both' (which shows the source image under the stitch overlay) to 'stitches' (which hides the image). The user loses the image without warning.

Reproduction

  1. Open Workspace, upload an image, run Auto-Digitize.
  2. Note that the canvas shows image + stitches overlapping (splitView = 'both', the default in useWorkspace.ts line 55).
  3. Click Confirm & Edit to transition to the digitized state.
  4. Observe: the source image disappears from the canvas. Only stitches are visible.

Observed

  • Default splitView in useWorkspace.ts line 55: 'both' (image + stitches overlapping).
  • In the 'digitized' state, splitView is silently overridden to 'stitches'.
  • The user is now confused because the image that was visible during digitize-preview has vanished.

Root cause

src/components/workspace/useWorkspace.ts lines 117–122:

case 'SET_STATE': {
  const updates: Partial<WorkspaceState> = { appState: action.state };
  if (action.state === 'digitized') {
    updates.splitView = 'stitches';
  }
  return { ...state, ...updates };
}

The state transition unconditionally clobbers splitView instead of preserving the user's preference.

Expected

The state transition should not silently change splitView. If a UX reason exists for switching to 'stitches' on digitized, it should be explicit (e.g., the user just confirmed they want to see stitches; or the image was never uploaded). Otherwise preserve whatever the user had selected.

Severity

Medium. Confusing UX; the image "disappearing" looks like a bug to the user even when it is intended.

## Bug In the Workspace, when the user clicks **Confirm & Edit** to enter the `digitized` state, the canvas's split-view setting silently flips from the default `'both'` (which shows the source image under the stitch overlay) to `'stitches'` (which hides the image). The user loses the image without warning. ## Reproduction 1. Open Workspace, upload an image, run Auto-Digitize. 2. Note that the canvas shows image + stitches overlapping (splitView = `'both'`, the default in `useWorkspace.ts` line 55). 3. Click **Confirm & Edit** to transition to the `digitized` state. 4. Observe: the source image disappears from the canvas. Only stitches are visible. ## Observed - Default `splitView` in `useWorkspace.ts` line 55: `'both'` (image + stitches overlapping). - In the `'digitized'` state, `splitView` is silently overridden to `'stitches'`. - The user is now confused because the image that was visible during digitize-preview has vanished. ## Root cause `src/components/workspace/useWorkspace.ts` lines 117–122: ```ts case 'SET_STATE': { const updates: Partial<WorkspaceState> = { appState: action.state }; if (action.state === 'digitized') { updates.splitView = 'stitches'; } return { ...state, ...updates }; } ``` The state transition unconditionally clobbers `splitView` instead of preserving the user's preference. ## Expected The state transition should not silently change `splitView`. If a UX reason exists for switching to `'stitches'` on `digitized`, it should be explicit (e.g., the user just confirmed they want to see stitches; or the image was never uploaded). Otherwise preserve whatever the user had selected. ## Severity Medium. Confusing UX; the image "disappearing" looks like a bug to the user even when it is intended.
Mark 2026-09-04 17:20:43 +00:00
Sign in to join this conversation.
No description provided.