Add side-by-side review flow for selected Page changes before publishing
Summary
Add a “Review selected changes” flow for non-conflicted Page changes so editors can compare the published version against the current autosave before publishing.
This should reuse the existing side-by-side comparison UI used by conflict resolution, but must not change conflict detection or conflict resolution behavior.
Problem
Currently, side-by-side comparison is mainly available during conflict resolution. Editors also need a way to review selected Page changes when there are no conflicts, especially to compare autosaved changes against the published version before publishing.
Requirements
- Add a review flow for selected non-conflicted Page changes.
- Reuse the existing side-by-side comparison UI where possible.
- Keep conflict detection and conflict resolution logic unchanged.
- Support Visual and Text comparison views for Page entities.
- Do not show conflict-specific route/component names for shared preview behavior.
- Selecting the old/published version should discard the pending autosave.
- Selecting the new/autosave version should keep the change selected for publishing.
- After all selected changes are reviewed, show an “All files reviewed” state with a publish action.
- The preview route should use a common name, e.g. /version-preview/..., not /conflict-preview/....
Expected UX
From the publish review dropdown:
1. User selects one or more Page changes.
2. User clicks “Review selected changes”.
3. User is taken to a side-by-side review screen.
4. User can compare:
- Old version / published version
- New version / autosave version
5. User can select:
- Old version: discard pending changes
- New version: publish selected changes
6. User can move through selected changes using Previous / Next.
7. When all files are reviewed, user can publish selected changes.
Acceptance Criteria
- “Review selected changes” opens a review route for selected Page changes.
- The review screen uses reusable shared comparison components.
- Conflict resolution behavior remains unchanged.
- Conflict-specific naming is not used for shared comparison/preview code.
- Open-preview icon appears only where appropriate.
- Storybook coverage exists for the review panel states.
- Unit tests cover review selection behavior.
- Playwright e2e coverage exists for reviewing, discarding, and publishing selected Page changes.
Testing Notes
Expected test coverage should include:
- TypeScript type-check.
- Unit tests for:
- review page behavior
- version selection
- publish/discard actions
- comparison UI controls
- Storybook build.
- Playwright e2e flow:
- select Page changes
- open review flow
- compare old/new versions
- discard old/published selection
- publish remaining selected autosave changes
issue