Skip to content

Redesigned Sync#2864

Draft
shaunandrews wants to merge 2 commits intotrunkfrom
redesign-sync-tab
Draft

Redesigned Sync#2864
shaunandrews wants to merge 2 commits intotrunkfrom
redesign-sync-tab

Conversation

@shaunandrews
Copy link
Contributor

@shaunandrews shaunandrews commented Mar 20, 2026

image

An experimental redesign of the Sync tab that presents a more prescribed system of Local -> Staging -> Production. The design is meant to abstractly represent server racks, with your local Studio site at the top, staging in the middle, and production at the bottom. Users can connect one site to each rack, and then push/pull between.

Proposed Changes

  • Rewrite sync-server-rack.tsx to render three explicit slots (Local, Staging, Production) instead of dynamically mapping connected sites
  • Add EmptySlot component (dashed border + "Connect" button) and FilledSlot component (Pull/Push buttons + Replace/Disconnect menu)
  • Add connectingSlot to Redux state so the site selector modal knows which slot is being filled
  • Add environmentFilter prop to SyncSitesModalSelector to prioritize matching-environment sites and update the modal title
  • Add getSlotForSite() helper that maps development environment to the staging slot
  • Push arrows only render between filled adjacent slots
  • Remove sticky "Connect another site" footer — empty slots have their own connect buttons

Testing Instructions

  1. Open the Sync tab for any local site
  2. Empty state: All three racks show — Local at top, Staging and Production below with dashed borders and "Connect" buttons
  3. Connect a staging site: Click Connect on the staging slot → modal opens with "Connect a staging site" title, staging sites sorted to top → select one → slot fills
  4. Connect a production site: Same flow for production slot
  5. Replace: Click ⋮ menu → Replace → modal opens → pick new site → old disconnects, new connects
  6. Disconnect: Click ⋮ menu → Disconnect → confirmation dialog → slot empties
  7. Push arrows: Only appear between filled adjacent slots (Local→Staging when staging filled, Staging→Production when both filled, Local→Production when only production filled)
  8. Push/Pull buttons: Open the existing sync dialog correctly

shaunandrews and others added 2 commits March 20, 2026 08:26
Replaces the flat connected sites list with a vertical stack of
server racks showing Local → Staging → Production hierarchy with
push arrows between tiers and pull/push buttons per remote site.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace the dynamic connected-sites list with a fixed Local → Staging → Production
rack model. Each remote slot holds at most one site, making the deployment pipeline
explicit. Empty slots show a dashed-border "Connect" button; filled slots include
Pull/Push and a menu with Replace and Disconnect actions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@shaunandrews shaunandrews changed the title Sync tab: fixed three-slot server rack layout Redesigned Sync Mar 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant