Skip to content

SPIKE (do not merge): free layout with @pierre/layouts - #3452

Draft
backnotprop wants to merge 1 commit into
mainfrom
spike/inbox-free-layout
Draft

backnotprop wants to merge 1 commit into
mainfrom
spike/inbox-free-layout

Conversation

@backnotprop

Copy link
Copy Markdown
Owner

SPIKE. Do not merge. This branch tries Pierre's @pierre/layouts engine for a free multi-pane layout beside the Inbox list (multi-thread view, option D).

What is here

  • packages/vendor-pierre-layouts/: a pinned, verbatim copy of @pierre/layouts (Apache-2.0; the package is private and not on npm).
    • upstream/ holds their files byte for byte. src/ is our wrapper, and the app imports only that.
    • patches/ is empty. UPSTREAM.md records the source, the commit, the files left out and a sha256 manifest.
    • Also: NOTICE, and a README.md that says how to check against upstream, update, patch and retire it.
    • It is a private workspace package and is never published.
  • scripts/check-vendored-pierre-layouts.ts checks the manifest. Its test fails on any edit inside upstream/, or on any import of upstream/ from outside the package.
  • packages/inbox/spike/: the layout.
    • The main pane is App's real thread pane with its reply box, portalled in.
    • Other panes are read-only real threads, plus one file pane.
    • Row menu items "Open in a pane" and "Open as a tab", and dragging a row onto a pane.
    • Split, move, resize, tabs, zoom, close, and save/restore in localStorage.

Gate

The spike exists only in a build run with INBOX_LAYOUT_SPIKE=1:

  • a Vite define, constant-folded, drops the lazy chunk and the engine from every other build;
  • even then, it shows only at ?layout-spike and at 900 px wide or more.

Known

  • tests/inbox-structure.test.ts fails: packages/inbox/App.tsx goes over its line ceiling by 11 lines. This is acceptable for a branch that never merges.
  • Panes after the first are read-only. A real reply box in each pane needs the thread-slot extraction from App.

Vendors @pierre/layouts (Apache-2.0, unpublished) verbatim under packages/vendor-pierre-layouts/upstream with a wrapper, a sha256 manifest, a check script and its test. Adds the Inbox free-layout spike behind INBOX_LAYOUT_SPIKE=1 and ?layout-spike.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant