Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 0 additions & 13 deletions .github/scripts/docs_lint.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,19 +47,6 @@
"architecture (publish_wiki.py/publish_site.py) — not a live "
"reference, not a forward-reference to something not yet built"
),
"frontend/src/features/display/useProjectDraftBackup.ts": (
"docs/proposals/proposal-h-display-layout-spec.md's ADDENDUM D9/F1 — "
"a forward reference to a proposed-but-not-yet-built file (the deck "
"auto-backup hook), explicitly flagged in that same doc's §A2 as "
"needing its own future issue; issue #267's implementation (this "
"repo's most recent /display PR) deliberately did not build it"
),
"frontend/src/pages/print.tsx": (
"docs/proposals/proposal-h-display-layout-spec.md's ADDENDUM D10/F5 — "
"a forward reference to a proposed-but-not-yet-built thin route "
"wrapper (the Print-page rehoming), tracked under issue #272 item 3; "
"issue #267's implementation deliberately did not build it"
),
}

PATH_EXTENSIONS = (
Expand Down
9 changes: 7 additions & 2 deletions docs/features/pdf-generator.md
Original file line number Diff line number Diff line change
Expand Up @@ -164,8 +164,13 @@ because the two hooks return differently:
`await saveToDrive()` already gives the real success/cancelled value
directly.

The same hook/component pair is also mounted from `frontend/src/features/ display/DisplayPage.tsx`'s own inline export (Proposal H, item 2) — one
implementation shared by both real export surfaces, not two. See
This used to also be mounted from `DisplayPage.tsx`'s own inline export
(Proposal H, item 2) — issue #275 retired that pipeline entirely (the
memory-heavy Generate PDF/Save-to-Drive operations now live solely here,
reached from `/display`'s Finish footer via a pre-print save gate; see
`docs/proposals/proposal-h-display-layout-spec.md`'s ADDENDUM D9/D10), so
this component's mounts are now: this tab, `PDFGeneratorModal.tsx`, and
`ProjectEditor.tsx` — one implementation, not a forked second copy. See
`docs/features/printing-tags.md`'s own entry for the full detail (why
`/whatsthat` and not a new route, the `sessionStorage`-backed "never
repeats within a session" rule) and `docs/features/print-export-page.md`
Expand Down
22 changes: 15 additions & 7 deletions docs/features/print-export-page.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,19 @@ requiring hand-rolled SVG specifically.

## Post-export contribution prompt (issue #166)

The `PDFGenerator.tsx` mounted inside this tab's own "PDF" sub-tab carries the
same post-export contribution prompt the unified `/display` page's inline
export does — a dismissible `Alert` shown once per session after a genuine
"Generate PDF"/"Save PDF to Google Drive" success, linking to `/whatsthat`.
One shared implementation (`frontend/src/features/export/ usePostExportContributionPrompt.ts` + `PostExportContributionPrompt.tsx`),
The `PDFGenerator.tsx` mounted inside this tab's own "PDF" sub-tab carries a
dismissible `Alert` shown once per session after a genuine "Generate
PDF"/"Save PDF to Google Drive" success, linking to `/whatsthat`. One shared
implementation (`frontend/src/features/export/ usePostExportContributionPrompt.ts` + `PostExportContributionPrompt.tsx`),
mounted from `PDFGenerator.tsx` itself so every real caller of that
component — this tab, `PDFGeneratorModal.tsx`, `ProjectEditor.tsx` — gets it
for free, rather than wiring it into `FinishedMyProject.tsx` separately. See
component — this tab (reachable both via the classic editor's "Print!" tab
and, since issue #275, standalone at `pages/print.tsx`), `PDFGeneratorModal.tsx`,
`ProjectEditor.tsx` — gets it for free, rather than wiring it into
`FinishedMyProject.tsx` separately. (Issue #275 also retired the unified
`/display` page's OWN separate inline export pipeline and its own mount of
this same prompt — PDF generation now lives solely here, reached from
`/display`'s Finish footer via a pre-print save gate; see
`docs/proposals/proposal-h-display-layout-spec.md`'s ADDENDUM D9/D10.) See
`docs/features/printing-tags.md`'s own entry for the full detail (session-
scoped `sessionStorage` flag, success-detection mechanism, why it's a
funnel entry point rather than a parallel one) and
Expand All @@ -48,6 +53,9 @@ of the wiring.
- `frontend/src/features/export/FinishedMyProject.tsx`
- `frontend/src/components/flags.tsx`
- `frontend/public/*.svg` (vendored flag icons)
- `frontend/src/pages/print.tsx` (issue #275, D10/F5) — thin standalone route
wrapper mounting `FinishedMyProject` unchanged, mirroring `pages/myDecks.tsx`;
the funnel destination `/display`'s Finish footer navigates to

## Status

Expand Down
13 changes: 8 additions & 5 deletions docs/features/printing-tags.md
Original file line number Diff line number Diff line change
Expand Up @@ -406,12 +406,15 @@ printings, artists, tags, and moderation from one screen.
after a genuinely successful PDF export (either "Generate PDF" or "Save
PDF to Google Drive"), linking straight to `/whatsthat` via the exact
same route `Navbar.tsx`/`HomepagePanel.tsx` already use. Mounted from
both real export surfaces — `frontend/src/features/display/DisplayPage.tsx`'s
own inline export (Proposal H, item 2) and `PDFGenerator.tsx` itself
(so the classic "Print!" tab / `PDFGeneratorModal.tsx` / `ProjectEditor.tsx`
mounts get it too, since they all render the same component) — one
`PDFGenerator.tsx` itself (so the classic "Print!" tab / standalone
`pages/print.tsx` (issue #275) / `PDFGeneratorModal.tsx` / `ProjectEditor.tsx`
mounts all get it, since they render the same component) — one
`usePostExportContributionPrompt`/`PostExportContributionPrompt.tsx`
pair (`frontend/src/features/export/`), not two copies. "Never repeats
pair (`frontend/src/features/export/`), not two copies. This used to
ALSO be mounted from `DisplayPage.tsx`'s own inline export (Proposal H,
item 2) — issue #275 retired that pipeline entirely, so PDF generation
(and this prompt) now lives solely on the Print page, reached from
`/display`'s Finish footer via a pre-print save gate. "Never repeats
within a session" (this is the "separate post-export contribution
toast, task #31" the unified-display-page proposal's own §4.4′ footnote
references) — a `sessionStorage` flag set the moment the prompt is
Expand Down
35 changes: 27 additions & 8 deletions docs/proposals/proposal-h-display-layout-spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,26 @@ removed — a soft warning (never a hard clamp) now surfaces when the current bl
selected profile's D6-table cap for a 4-column sheet, computed dynamically
(`maxBleedForFourColumns`) rather than copying the table's numbers verbatim. At these shipped
defaults, /display's sheet now renders the spec's own 4×2 grid (D4) exactly, not the 4×1 this
doc previously reported as the interim state before D5/D6 landed. Deliberately NOT built here
(this PR, and not by #266/#267/#268/#284 above either): D9–D11/D14/D16 (own future issues, per
doc previously reported as the interim state before D5/D6 landed. **D9/D10 shipped (this PR —
issue #275):** the right-rail Finish footer (`FinishFooter.tsx`) now holds `Save Deck` and
`Print / Export →` as co-equal `btn-primary` buttons plus the unchanged `Export ▾`, replacing
the old three-button "Prepare Print" stack; the memory-heavy Generate PDF/Save PDF to Google
Drive operations (and this page's own item-2 inline export pipeline that drove them) are
removed from `/display` outright, not merely hidden — PDF generation now lives solely on the new
`pages/print.tsx` (D10/F5, a thin wrapper mounting the unchanged `FinishedMyProject`, mirroring
`pages/myDecks.tsx`). `useProjectDraftBackup.ts` (F1) mirrors the working project to
`localStorage` (indexes/settings only) on a debounce, offers a restore nudge on the empty-project
landing, and fires D9(2)'s promotion nudge post-import; `PrePrintSaveGate.tsx` (F3) runs the
D9(3) flush-then-optionally-prompt-then-navigate sequence the footer's `Print / Export →` button
triggers. Deliberately NOT built by this PR: the Print page's own tab REORDER (owner order PDF ·
MakePlayingCards · NotMPC · PringlePrints, PDF default) and its PDF tab's preview removal (D10's
own owner addendum, both tracked as their own follow-up), and a genuine, out-of-scope gap this
PR leaves documented rather than silently accepted — `/display`'s own Page Setup controls (paper
size/bleed edge/guides, plain component state, never persisted) don't carry over to the Print
page's classic `PDFGenerator`, which has its own separate settings and doesn't read this page's
margin-profile/card-spacing redux slices either; a future issue, not D9/D10's own scope (save-
vs-print ordering and route linkage, not settings portability). Deliberately NOT built here
(this PR, and not by #266/#267/#268/#284 above either): D11/D14/D16 (own future issues, per
§A2's own issue mapping).

Issue mapping (explicit):
Expand Down Expand Up @@ -955,12 +973,13 @@ Card spacing control (D19) — **SHIPPED** (this PR, alongside R7/D17/D18):
item 3 → D10 Print-page rehoming (F5); item 4 → D11 FinishSettings (F6); item
5 → D12 browse (F9/F10); item 7 → D16 cardback swatch (F7); item 1 → D15
import variety (F13).
- **NEW issue needed** — **D9 finish footer + deck auto-backup** (F1–F4). The
owner named this in #272's comment as polish-round scope but it has no issue
number of its own; it is the one genuinely-new surface here (local-draft
persistence + co-equal Save/Print + pre-print save gate) and should be filed
as its own issue at implementation time. D10's `pages/print.tsx` route
(F5) can ride #272 item 3 or the same new issue.
- **#275 (filed, shipped)** — **D9 finish footer + deck auto-backup** (F1–F4),
plus D10's `pages/print.tsx` route (F5) — the owner named this in #272's
comment as polish-round scope; it was filed as its own issue and shipped
(see this doc's own "Implementation status" line above). The tab
REORDER/PDF-tab-preview-removal half of D10's own owner addendum was
deliberately NOT built by #275 — tracked as its own follow-up, not silently
dropped.

## A3. Conflicts / tensions (new, honest)

Expand Down
Loading
Loading