@stapel/listings-react 0.20.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/CHANGELOG.md +75 -0
  2. package/dist/api/generated/schema.d.ts +125 -2
  3. package/dist/api/generated/schema.d.ts.map +1 -1
  4. package/dist/api/listingsApi.d.ts +20 -1
  5. package/dist/api/listingsApi.d.ts.map +1 -1
  6. package/dist/api/listingsApi.js +1 -0
  7. package/dist/api/listingsApi.js.map +1 -1
  8. package/dist/api/types.d.ts +32 -2
  9. package/dist/api/types.d.ts.map +1 -1
  10. package/dist/api/types.js +7 -0
  11. package/dist/api/types.js.map +1 -1
  12. package/dist/default/ListingCard.d.ts +11 -0
  13. package/dist/default/ListingCard.d.ts.map +1 -1
  14. package/dist/default/ListingCard.js +86 -7
  15. package/dist/default/ListingCard.js.map +1 -1
  16. package/dist/default/ListingPhoto.d.ts +40 -0
  17. package/dist/default/ListingPhoto.d.ts.map +1 -1
  18. package/dist/default/ListingPhoto.js +53 -6
  19. package/dist/default/ListingPhoto.js.map +1 -1
  20. package/dist/default/ListingSerpCard.d.ts.map +1 -1
  21. package/dist/default/ListingSerpCard.js +14 -4
  22. package/dist/default/ListingSerpCard.js.map +1 -1
  23. package/dist/default/MyListingsPane.d.ts +19 -1
  24. package/dist/default/MyListingsPane.d.ts.map +1 -1
  25. package/dist/default/MyListingsPane.js +99 -12
  26. package/dist/default/MyListingsPane.js.map +1 -1
  27. package/dist/headless/ListingActions.d.ts +64 -13
  28. package/dist/headless/ListingActions.d.ts.map +1 -1
  29. package/dist/headless/ListingActions.js +60 -5
  30. package/dist/headless/ListingActions.js.map +1 -1
  31. package/dist/i18n/es.d.ts.map +1 -1
  32. package/dist/i18n/es.js +8 -2
  33. package/dist/i18n/es.js.map +1 -1
  34. package/dist/i18n/keys.d.ts +20 -0
  35. package/dist/i18n/keys.d.ts.map +1 -1
  36. package/dist/i18n/keys.js +52 -1
  37. package/dist/i18n/keys.js.map +1 -1
  38. package/dist/i18n/ru.d.ts.map +1 -1
  39. package/dist/i18n/ru.js +12 -2
  40. package/dist/i18n/ru.js.map +1 -1
  41. package/dist/index.d.ts +5 -5
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +2 -2
  44. package/dist/index.js.map +1 -1
  45. package/dist/model/mine.d.ts +20 -0
  46. package/dist/model/mine.d.ts.map +1 -1
  47. package/dist/model/mine.js +22 -0
  48. package/dist/model/mine.js.map +1 -1
  49. package/dist/model/mutations.d.ts +24 -1
  50. package/dist/model/mutations.d.ts.map +1 -1
  51. package/dist/model/mutations.js +28 -0
  52. package/dist/model/mutations.js.map +1 -1
  53. package/dist/model/status.d.ts.map +1 -1
  54. package/dist/model/status.js +26 -9
  55. package/dist/model/status.js.map +1 -1
  56. package/dist/model/transitions.d.ts +38 -1
  57. package/dist/model/transitions.d.ts.map +1 -1
  58. package/dist/model/transitions.js +73 -1
  59. package/dist/model/transitions.js.map +1 -1
  60. package/llms.txt +4 -2
  61. package/manifest.json +26 -2
  62. package/nav-manifest.json +1 -1
  63. package/package.json +5 -5
  64. package/src/analytics/generated/events.json +1 -1
  65. package/src/api/generated/schema.ts +125 -2
  66. package/src/api/listingsApi.ts +27 -0
  67. package/src/api/types.ts +47 -2
  68. package/src/default/ListingCard.tsx +115 -12
  69. package/src/default/ListingPhoto.tsx +102 -18
  70. package/src/default/ListingSerpCard.tsx +17 -4
  71. package/src/default/MyListingsPane.tsx +205 -39
  72. package/src/headless/ListingActions.tsx +137 -16
  73. package/src/i18n/es.ts +8 -2
  74. package/src/i18n/keys.ts +52 -1
  75. package/src/i18n/ru.ts +12 -2
  76. package/src/index.ts +19 -3
  77. package/src/model/mine.ts +23 -0
  78. package/src/model/mutations.ts +41 -0
  79. package/src/model/status.ts +27 -9
  80. package/src/model/transitions.ts +80 -1
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  /**
3
3
  * `<MyListingsPane>` — the seller's dashboard.
4
4
  *
@@ -45,12 +45,12 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
45
45
  */
46
46
  import { useState } from "react";
47
47
  import { Flex, List, Tabs, Typography } from "antd";
48
- import { ErrorAlert, EmptyState, GatedButton, SkinConfirm, SkinTheme, } from "@stapel/tokens-antd/skin";
49
- import { matchList, matchLoad, useT, useTPlural } from "@stapel/core";
48
+ import { ErrorAlert, EmptyState, GatedButton, PaneGate, SkinConfirm, SkinTheme, } from "@stapel/tokens-antd/skin";
49
+ import { actionAvailable, matchList, matchLoad, useT, useTPlural } from "@stapel/core";
50
50
  import { spacing } from "@stapel/tokens";
51
51
  import { useMyListings } from "../headless/MyListings.js";
52
52
  import { useListingActions } from "../headless/ListingActions.js";
53
- import { myListingTitle } from "../model/mine.js";
53
+ import { myListingTitle, neverSubmitted } from "../model/mine.js";
54
54
  import { listingStatusView } from "../model/status.js";
55
55
  import { LISTINGS_I18N_KEYS } from "../i18n/keys.js";
56
56
  import { ListingPhoto } from "./ListingPhoto.js";
@@ -75,9 +75,74 @@ const THUMB_WIDTH = "4.5rem";
75
75
  * action buttons ~560px of empty space to split across, stranding the reason
76
76
  * text between them. */
77
77
  const MINE_MEASURE = "60rem";
78
+ /** The class a row's link to its own listing carries. */
79
+ const MINE_LINK_CLASS = "stapel-listings-mine-link";
80
+ /** The `href` the hoisted dashboard stylesheet is deduplicated by. */
81
+ const MINE_STYLE_HREF = "stapel-listings-mine";
82
+ /**
83
+ * The two rules an inline style cannot state: the focus ring
84
+ * (`:focus-visible`) and the fact that a row link is a HIT AREA rather than a
85
+ * link's look.
86
+ *
87
+ * `color: inherit` / `text-decoration: none`: the title is already a title and
88
+ * the thumbnail is already a picture — painting either link-blue would make a
89
+ * dashboard read as a list of hyperlinks instead of a list of listings. The
90
+ * ring is what keeps that honest for a keyboard: a target with no chrome must
91
+ * still say when it has focus.
92
+ */
93
+ function myListingsCss() {
94
+ const link = `.${MINE_LINK_CLASS}`;
95
+ return [
96
+ `${link}{display:block;color:inherit;text-decoration:none;min-inline-size:0}`,
97
+ `${link}:hover{text-decoration:underline}`,
98
+ `${link}:focus-visible{outline:2px solid var(--stapel-focus-ring);` +
99
+ `outline-offset:2px;border-radius:4px}`,
100
+ ].join("");
101
+ }
102
+ /**
103
+ * The row's title and thumbnail, as a link to the listing's own page when the
104
+ * host has one.
105
+ *
106
+ * The gap this closes (D183): a live cabinet held ZERO `a[href^="/l/"]`. The
107
+ * title was bold text and the thumbnail was an image, so a seller could see
108
+ * their listing in the list and had no way at all to open it — the one
109
+ * natural move after publishing ("did that come out right?") had to be made
110
+ * by typing a URL. `<ListingCard>` has had this seam since it existed; the
111
+ * dashboard simply never took it.
112
+ *
113
+ * A row NOBODY HAS EVER PUBLISHED gets no link, and that is not a
114
+ * limitation. `title`/`price`/`images` are the PUBLISHED fields, so such a
115
+ * row's page is a blank one — a link to nothing is worse than the absence of
116
+ * a link, and Edit is the move that row actually wants. The predicate is the
117
+ * server's own (`neverSubmitted`: DRAFT and NOT_SUBMITTED), not "is this row
118
+ * showing its draft twin": the second answers `false` for a draft with no
119
+ * title at all, and a row reading "#623 · Draft" was handed a link to a
120
+ * page that does not exist.
121
+ */
122
+ function RowLink(props) {
123
+ const { href, listing } = props;
124
+ if (href === undefined || neverSubmitted(listing))
125
+ return _jsx(_Fragment, { children: props.children });
126
+ const target = href(listing.id);
127
+ const Link = props.linkComponent;
128
+ const shared = {
129
+ href: target,
130
+ className: MINE_LINK_CLASS,
131
+ "data-testid": props.testId,
132
+ "data-analytics": "none",
133
+ "data-analytics-reason": "navigation to the listing's own page — the host app wraps this with its own tracked()",
134
+ ...(props.label !== undefined ? { "aria-label": props.label } : {}),
135
+ };
136
+ return Link !== undefined ? (_jsx(Link, { ...shared, children: props.children })) : (_jsx("a", { ...shared, children: props.children }));
137
+ }
78
138
  function MyListingRow(props) {
79
139
  const t = useT();
80
- const actions = useListingActions(props.listing.id, props.listing.status);
140
+ const actions = useListingActions(props.listing.id, props.listing.status, {
141
+ // THE answer to "what can I do with this row", from the module that owns
142
+ // the state machine. Absent (a row read before stapel-listings 0.20.0),
143
+ // `ownerMoves` falls back to the mirror rather than to nothing.
144
+ available: props.listing.available_transitions,
145
+ });
81
146
  // Both axes, both real: `MyListingCardSerializer` puts `moderation_status`
82
147
  // on the owner's card, so the row no longer has to pass "approved" as a
83
148
  // stand-in and lose the one combination that matters — a LIVE listing whose
@@ -99,11 +164,18 @@ function MyListingRow(props) {
99
164
  const editGate = actions.editGate(true);
100
165
  const hasEditor = onEdit !== undefined;
101
166
  const cover = props.listing.images?.[0] ?? props.listing.images_draft?.[0];
102
- return (_jsx(List.Item, { "data-testid": "listings-mine-row", "data-listing-id": props.listing.id, style: { alignItems: "flex-start" }, children: _jsxs(Flex, { gap: spacing[3], style: { width: "100%", minWidth: 0 }, children: [_jsx("div", { style: { flex: `0 0 ${THUMB_WIDTH}`, width: THUMB_WIDTH }, children: _jsx(ListingPhoto, { imageRef: cover, alt: heading ?? `#${String(props.listing.id)}` }) }), _jsxs(Flex, { vertical: true, gap: spacing[2], style: { flex: "1 1 auto", minWidth: 0 }, children: [_jsx(Typography.Text, { strong: true, ellipsis: true, "data-testid": "listings-mine-title", children: heading ?? `#${String(props.listing.id)}` }), status !== undefined ? _jsx(ListingStatusBlock, { status: status }) : null, actions.error !== undefined && actions.error !== null ? (_jsx(ErrorAlert, { testId: "listings-mine-action-error", thrown: actions.error, variant: "inline" })) : null, _jsxs(Flex, { wrap: true, gap: spacing[2], align: "flex-start", children: [hasEditor ? (_jsx(GatedButton, { gate: editGate, size: "small", testId: "listings-mine-edit", "data-analytics": "none", "data-analytics-reason": "business action \u2014 host app wraps with its own tracked()", onClick: () => {
103
- onEdit?.(props.listing.id);
104
- }, children: t(LISTINGS_I18N_KEYS.mineEdit) })) : null, _jsx(GatedButton, { gate: actions.complete, size: "small", testId: "listings-mine-complete", "data-analytics": "none", "data-analytics-reason": "business action \u2014 host app wraps with its own tracked()", onClick: actions.doComplete, children: t(LISTINGS_I18N_KEYS.mineComplete) }), _jsx(GatedButton, { gate: actions.archive, size: "small", testId: "listings-mine-archive", "data-analytics": "none", "data-analytics-reason": "business action \u2014 host app wraps with its own tracked()", onClick: actions.doArchive, children: t(LISTINGS_I18N_KEYS.mineArchive) }), _jsx(GatedButton, { gate: actions.remove, size: "small", danger: true, testId: "listings-mine-delete", "data-analytics": "none", "data-analytics-reason": "opens the delete confirmation", onClick: () => {
105
- props.onAskRemove(props.listing.id);
106
- }, children: t(LISTINGS_I18N_KEYS.mineDelete) })] })] })] }) }));
167
+ return (_jsxs(List.Item, { "data-testid": "listings-mine-row", "data-listing-id": props.listing.id, style: { alignItems: "flex-start" }, children: [_jsx("style", { href: MINE_STYLE_HREF, precedence: "default", children: myListingsCss() }), _jsxs(Flex, { gap: spacing[3], style: { width: "100%", minWidth: 0 }, children: [_jsx("div", { style: { flex: `0 0 ${THUMB_WIDTH}`, width: THUMB_WIDTH }, children: _jsx(RowLink, { listing: props.listing, href: props.listingHref, linkComponent: props.linkComponent, testId: "listings-mine-thumb-link", label: heading ?? `#${String(props.listing.id)}`, children: _jsx(ListingPhoto, { imageRef: cover, alt: heading ?? `#${String(props.listing.id)}` }) }) }), _jsxs(Flex, { vertical: true, gap: spacing[2], style: { flex: "1 1 auto", minWidth: 0 }, children: [_jsx(RowLink, { listing: props.listing, href: props.listingHref, linkComponent: props.linkComponent, testId: "listings-mine-open", children: _jsx(Typography.Text, { strong: true, ellipsis: true, "data-testid": "listings-mine-title", children: heading ?? `#${String(props.listing.id)}` }) }), status !== undefined ? _jsx(ListingStatusBlock, { status: status }) : null, actions.error !== undefined && actions.error !== null ? (_jsx(ErrorAlert, { testId: "listings-mine-action-error", thrown: actions.error, variant: "inline" })) : null, _jsxs(Flex, { wrap: true, gap: spacing[2], align: "flex-start", children: [hasEditor ? (_jsx(GatedButton, { gate: editGate, size: "small", layout: "inline", testId: "listings-mine-edit", "data-analytics": "none", "data-analytics-reason": "business action \u2014 host app wraps with its own tracked()", onClick: () => {
168
+ onEdit?.(props.listing.id);
169
+ }, children: t(LISTINGS_I18N_KEYS.mineEdit) })) : null, actions.moves.map((move) => (_jsx(GatedButton, { gate: move.gate, size: "small", layout: "inline", testId: move.testId, "data-listing-move": move.to, "data-analytics": "none", "data-analytics-reason": "business action \u2014 host app wraps with its own tracked()", onClick: move.run, children: t(move.labelKey) }, move.to))), _jsx(GatedButton, { gate: actions.remove, size: "small",
170
+ // STACK, alone among the row's actions, and measured: this is
171
+ // the one control that carries a STANDING sentence ("archive it
172
+ // first — a listing on sale cannot be deleted"), and inline a
173
+ // button plus sixty characters is one flex item too wide for a
174
+ // 390px row, so it wrapped inside itself and took four lines.
175
+ // Under the button the same sentence takes two.
176
+ layout: "stack", danger: true, testId: "listings-mine-delete", "data-analytics": "none", "data-analytics-reason": "opens the delete confirmation", onClick: () => {
177
+ props.onAskRemove(props.listing.id);
178
+ }, children: t(LISTINGS_I18N_KEYS.mineDelete) })] })] })] })] }));
107
179
  }
108
180
  export function MyListingsPane(props) {
109
181
  const t = useT();
@@ -116,7 +188,7 @@ export function MyListingsPane(props) {
116
188
  ? bag.rows.data.find((row) => row.id === removingId)?.status
117
189
  : undefined);
118
190
  const paged = bag.prevPage.available || bag.nextPage.available;
119
- const renderRow = (row) => (_jsx(MyListingRow, { listing: row, onEdit: props.onEdit, onAskRemove: setRemovingId }));
191
+ const renderRow = (row) => (_jsx(MyListingRow, { listing: row, onEdit: props.onEdit, onAskRemove: setRemovingId, listingHref: props.listingHref, linkComponent: props.linkComponent }));
120
192
  return (_jsx(SkinTheme, { surface: "base", style: { padding: spacing[4], maxWidth: MINE_MEASURE }, ...(props.mode !== undefined ? { mode: props.mode } : {}), children: _jsxs(Flex, { vertical: true, gap: spacing[4], "data-testid": "listings-mine", children: [_jsx(Typography.Title, { level: 3, children: t(LISTINGS_I18N_KEYS.mineTitle) }), !bag.gate.available ? (
121
193
  // A refused pane is ONE state, not a banner above a live-looking
122
194
  // dashboard: the tabs still advertised "Active 2 · Drafts 3" to a
@@ -158,7 +230,22 @@ export function MyListingsPane(props) {
158
230
  // "no drafts" and "nothing sold yet" are different emptinesses and
159
231
  // a test has to be able to tell which one is on screen.
160
232
  _jsx("div", { "data-testid": "listings-mine-empty", "data-empty-tab": bag.tab, children: _jsx(EmptyState, { title: t(TAB_EMPTY[bag.tab]) }) })),
161
- ready: (rows) => (_jsx(List, { dataSource: [...rows], rowKey: (row) => row.id, renderItem: renderRow })),
233
+ ready: (rows) => (
234
+ // ONE COPY OF EACH REFUSAL FOR THE WHOLE LIST.
235
+ //
236
+ // `<PaneGate>` pools what `<GatedControl>` would otherwise print
237
+ // per control: a seller with six published listings read
238
+ // "archive it first — a listing on sale cannot be deleted" six
239
+ // times down one column, and on a 390px phone that paragraph is
240
+ // 63px of every row. Each control keeps its
241
+ // `aria-describedby` pointing at the pooled sentence, so a
242
+ // screen reader still reads the reason WITH the control it
243
+ // belongs to — the sentence moves, it does not disappear, which
244
+ // is the difference between pooling and hiding.
245
+ //
246
+ // The gate itself is open: this pane's own refusal is `bag.gate`
247
+ // and it is answered far above, as one state.
248
+ _jsx(PaneGate, { gate: actionAvailable(), testId: "listings-mine-reasons", children: _jsx(List, { dataSource: [...rows], rowKey: (row) => row.id, renderItem: renderRow }) })),
162
249
  }), paged ? (_jsxs(Flex, { gap: spacing[2], wrap: true, children: [_jsx(GatedButton, { gate: bag.prevPage, size: "small", layout: "inline", testId: "listings-mine-prev", "data-analytics": "none", "data-analytics-reason": "paging a list the person is already reading; not a business action", onClick: bag.goPrev, children: t(LISTINGS_I18N_KEYS.pagePrev) }), _jsx(GatedButton, { gate: bag.nextPage, size: "small", layout: "inline", testId: "listings-mine-next", "data-analytics": "none", "data-analytics-reason": "paging a list the person is already reading; not a business action", onClick: bag.goNext, children: t(LISTINGS_I18N_KEYS.pageNext) })] })) : null] })), _jsx(SkinConfirm, { open: removingId !== null, danger: true, title: t(LISTINGS_I18N_KEYS.mineDeleteConfirmTitle), body: t(LISTINGS_I18N_KEYS.mineDeleteConfirmBody), confirmLabel: t(LISTINGS_I18N_KEYS.mineDelete), confirming: removal.inFlight, "data-testid": "listings-mine-delete-confirm", onConfirm: () => {
163
250
  removal.doRemove();
164
251
  setRemovingId(null);
@@ -1 +1 @@
1
- {"version":3,"file":"MyListingsPane.js","sourceRoot":"","sources":["../../src/default/MyListingsPane.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MyListingsPane.js","sourceRoot":"","sources":["../../src/default/MyListingsPane.tsx"],"names":[],"mappings":"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"}
@@ -1,21 +1,64 @@
1
1
  import type { ActionAvailability } from "@stapel/core";
2
- import type { ListingLifecycleStatus } from "../api/types.js";
2
+ import type { ListingLifecycleStatus, ListingOwnerTransition } from "../api/types.js";
3
3
  /**
4
- * The three lifecycle moves an owner can actually request, each behind a gate
5
- * that states its reason.
4
+ * The lifecycle moves an owner can actually request, each behind a gate that
5
+ * states its reason.
6
+ *
7
+ * ── The server says what is offerable; nothing here re-derives it ──────────
8
+ *
9
+ * `MyListingCard.available_transitions` (stapel-listings 0.20.0) is the
10
+ * seller's half of the state machine, reported for ONE row by the module that
11
+ * owns the machine — and it is the same list `POST {id}/transition/`
12
+ * validates against, so the set a person is offered and the set the server
13
+ * takes are one object rather than two that agree today.
14
+ *
15
+ * Before it, this hook offered a FIXED three (archive, complete, delete) and
16
+ * gated them against a local copy of the table. That shipped two defects at
17
+ * once, and both were live:
18
+ *
19
+ * - **Buttons that did nothing.** `canTransition(from, to)` answers true for
20
+ * `from === to` — correctly, since the server returns early on a
21
+ * same-status move — so a SOLD row's "Mark sold" and an ARCHIVED row's
22
+ * "Archive" were enabled, clickable and inert. Two of four controls on
23
+ * every archived row.
24
+ * - **No way back.** The whole vocabulary was `archive` and `complete`, and
25
+ * both are EXITS. A seller who marked something sold by a misclick could
26
+ * not un-sell it: `SOLD → PUBLISHED` was in the machine and had no route,
27
+ * so the honest answer the cabinet had left was Delete and start again.
28
+ *
29
+ * {@link ListingActionsBag.moves} is now the whole answer for a dashboard:
30
+ * whatever it holds is drawn, and a control that would be a no-op is not in
31
+ * it. `ownerMoves` supplies the fallback for a surface that holds a bare
32
+ * `status` (a detail pane, a row read before 0.20.0) — never as a second
33
+ * opinion where the card carries the field.
6
34
  *
7
35
  * ── The mirror is UX, the 409 is the verdict ───────────────────────────────
8
36
  *
9
- * `LISTING_TRANSITIONS` (`model/transitions.ts`) is a copy of the server's
10
- * whitelist, and it exists so a control can be switched off WITH a sentence:
11
- * "a listing that is sold cannot be archived that way" beats a toast after
12
- * the click. The server still decides — `transition_to` raises and the view
13
- * answers 409 `error.409.invalid_listing_transition` with
14
- * `params.from_status` — and that refusal is rendered as the named thing it
15
- * is. The mirror may never block what the server would allow, which is why it
16
- * is a copy of the table and not a summary of it.
37
+ * The server still decides — `transition_to` raises and the view answers 409
38
+ * `error.409.invalid_listing_transition` with `params.from_status` and that
39
+ * refusal is rendered as the named thing it is.
17
40
  */
41
+ /** One move a seller may make from where the listing is now. */
42
+ export interface ListingMove {
43
+ /** Where it lands. The vocabulary `available_transitions` speaks. */
44
+ readonly to: ListingOwnerTransition;
45
+ /** The caption's i18n KEY — never a literal; this is a headless hook. */
46
+ readonly labelKey: string;
47
+ /** Mandate and in-flight only: the move itself is offered, or it would not
48
+ * be in this list. */
49
+ readonly gate: ActionAvailability;
50
+ /** A stable hook for a skin's `data-testid`, so a test names the MOVE
51
+ * rather than the position of a button in a wrapping row. */
52
+ readonly testId: string;
53
+ run(): void;
54
+ }
18
55
  export interface ListingActionsBag {
56
+ /**
57
+ * Every move this listing's owner may make, in drawing order, and NOTHING
58
+ * else. Empty is a real answer (a row mid-load, a status with no owner
59
+ * edges) and a skin draws no action row for it.
60
+ */
61
+ readonly moves: readonly ListingMove[];
19
62
  readonly archive: ActionAvailability;
20
63
  readonly complete: ActionAvailability;
21
64
  readonly remove: ActionAvailability;
@@ -35,8 +78,16 @@ export interface ListingActionsBag {
35
78
  doComplete(): void;
36
79
  doRemove(): void;
37
80
  readonly inFlight: boolean;
38
- /** The last refusal from any of the three, in the one error dialect. */
81
+ /** The last refusal from any of them, in the one error dialect. */
39
82
  readonly error: unknown;
40
83
  }
41
- export declare function useListingActions(id: number, status: ListingLifecycleStatus | undefined): ListingActionsBag;
84
+ export interface UseListingActionsOptions {
85
+ /**
86
+ * The row's own `available_transitions`, when the caller has a
87
+ * {@link MyListingCard} rather than a bare status. THE answer where it is
88
+ * present; see this file's header.
89
+ */
90
+ readonly available?: readonly ListingOwnerTransition[] | undefined;
91
+ }
92
+ export declare function useListingActions(id: number, status: ListingLifecycleStatus | undefined, options?: UseListingActionsOptions): ListingActionsBag;
42
93
  //# sourceMappingURL=ListingActions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListingActions.d.ts","sourceRoot":"","sources":["../../src/headless/ListingActions.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAU9D;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,kBAAkB,CAAC;IACjD,SAAS,IAAI,IAAI,CAAC;IAClB,UAAU,IAAI,IAAI,CAAC;IACnB,QAAQ,IAAI,IAAI,CAAC;IACjB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,sBAAsB,GAAG,SAAS,GACzC,iBAAiB,CA6DnB"}
1
+ {"version":3,"file":"ListingActions.d.ts","sourceRoot":"","sources":["../../src/headless/ListingActions.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AAWzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,gEAAgE;AAChE,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,QAAQ,CAAC,EAAE,EAAE,sBAAsB,CAAC;IACpC,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;0BACsB;IACtB,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC;iEAC6D;IAC7D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,GAAG,IAAI,IAAI,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,kBAAkB,CAAC;IACjD,SAAS,IAAI,IAAI,CAAC;IAClB,UAAU,IAAI,IAAI,CAAC;IACnB,QAAQ,IAAI,IAAI,CAAC;IACjB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAwCD,MAAM,WAAW,wBAAwB;IACvC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,sBAAsB,EAAE,GAAG,SAAS,CAAC;CACpE;AAED,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,OAAO,GAAE,wBAA6B,GACrC,iBAAiB,CAqFnB"}
@@ -1,14 +1,51 @@
1
1
  import { actionAvailable, actionBlocked, firstBlock, } from "@stapel/core";
2
- import { useArchiveListing, useCompleteListing, useDeleteListing, } from "../model/mutations.js";
3
- import { canDelete, canTransition } from "../model/transitions.js";
2
+ import { useArchiveListing, useCompleteListing, useDeleteListing, useTransitionListing, } from "../model/mutations.js";
3
+ import { canDelete, canTransition, ownerMoves } from "../model/transitions.js";
4
4
  import { LISTINGS_I18N_KEYS } from "../i18n/keys.js";
5
5
  import { useMandateGate } from "./useMandateGate.js";
6
- export function useListingActions(id, status) {
6
+ /** What a caption says, keyed by where the move lands. */
7
+ const MOVE_LABEL = {
8
+ published: LISTINGS_I18N_KEYS.moveToPublished,
9
+ pending: LISTINGS_I18N_KEYS.moveToPending,
10
+ paused: LISTINGS_I18N_KEYS.moveToPaused,
11
+ draft: LISTINGS_I18N_KEYS.moveToDraft,
12
+ // These two edges have had buttons since this pane existed. They keep their
13
+ // captions: renaming them now would be a change of wording dressed as a
14
+ // change of capability.
15
+ sold: LISTINGS_I18N_KEYS.mineComplete,
16
+ archived: LISTINGS_I18N_KEYS.mineArchive,
17
+ // In the vocabulary because the enum is the whole lifecycle; not in any
18
+ // seller's offered set (`rejected` and `blocked` are moderation's verdicts,
19
+ // `expired` is the clock's). Named anyway rather than left to a lookup that
20
+ // could return undefined.
21
+ rejected: LISTINGS_I18N_KEYS.statusRejected,
22
+ blocked: LISTINGS_I18N_KEYS.statusBlocked,
23
+ expired: LISTINGS_I18N_KEYS.statusExpired,
24
+ };
25
+ /**
26
+ * The caption for moving from *from* to *to*.
27
+ *
28
+ * One edge earns a second sentence: `EXPIRED → PENDING` is the same move as
29
+ * "send for review" asked at a different moment — nothing is wrong with the
30
+ * listing, its time simply ran out — and "Renew" is what a person came to the
31
+ * dashboard to do.
32
+ */
33
+ function moveLabelKey(from, to) {
34
+ if (from === "expired" && to === "pending") {
35
+ return LISTINGS_I18N_KEYS.moveRenew;
36
+ }
37
+ return MOVE_LABEL[to];
38
+ }
39
+ export function useListingActions(id, status, options = {}) {
7
40
  const mandate = useMandateGate();
8
41
  const archive = useArchiveListing();
9
42
  const complete = useCompleteListing();
10
43
  const remove = useDeleteListing();
11
- const inFlight = archive.isPending || complete.isPending || remove.isPending;
44
+ const move = useTransitionListing();
45
+ const inFlight = archive.isPending ||
46
+ complete.isPending ||
47
+ remove.isPending ||
48
+ move.isPending;
12
49
  const busy = inFlight
13
50
  ? actionBlocked(LISTINGS_I18N_KEYS.blockedInFlight)
14
51
  : actionAvailable();
@@ -31,7 +68,25 @@ export function useListingActions(id, status) {
31
68
  const removeGate = firstBlock(mandate, known, busy, status !== undefined && !canDelete(status)
32
69
  ? actionBlocked(LISTINGS_I18N_KEYS.blockedDeleteActive)
33
70
  : actionAvailable());
71
+ // Mandate and in-flight, and nothing else: a move that is IN this list is
72
+ // one the server has said it will take, so there is no third gate to
73
+ // consult. The whole point of `available_transitions` is that "may I?" was
74
+ // answered before the button was drawn.
75
+ const moveGate = firstBlock(mandate, busy);
76
+ const moves = status === undefined
77
+ ? []
78
+ : ownerMoves(status, options.available).map((to) => ({
79
+ to,
80
+ labelKey: moveLabelKey(status, to),
81
+ gate: moveGate,
82
+ testId: `listings-mine-move-${to}`,
83
+ run: () => {
84
+ if (moveGate.available)
85
+ move.mutate({ id, to });
86
+ },
87
+ }));
34
88
  return {
89
+ moves,
35
90
  archive: archiveGate,
36
91
  complete: completeGate,
37
92
  remove: removeGate,
@@ -51,7 +106,7 @@ export function useListingActions(id, status) {
51
106
  remove.mutate(id);
52
107
  },
53
108
  inFlight,
54
- error: archive.error ?? complete.error ?? remove.error,
109
+ error: archive.error ?? complete.error ?? move.error ?? remove.error,
55
110
  };
56
111
  }
57
112
  //# sourceMappingURL=ListingActions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListingActions.js","sourceRoot":"","sources":["../../src/headless/ListingActions.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ListingActions.js","sourceRoot":"","sources":["../../src/headless/ListingActions.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"es.d.ts","sourceRoot":"","sources":["../../src/i18n/es.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,EAAE,cAyNlC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAG7D"}
1
+ {"version":3,"file":"es.d.ts","sourceRoot":"","sources":["../../src/i18n/es.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,EAAE,cA+NlC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAG7D"}
package/dist/i18n/es.js CHANGED
@@ -28,7 +28,7 @@ export const listingsI18nBundleEs = {
28
28
  "error.403.listing_not_owner": "Este anuncio no es tuyo",
29
29
  "error.404.listing_not_found": "No se encontró el anuncio",
30
30
  "error.409.already_favorited": "El anuncio ya está en favoritos",
31
- "error.409.invalid_listing_transition": "Un anuncio en estado «{from_status}» no se puede mover así",
31
+ "error.409.invalid_listing_transition": "Desde su estado actual, el anuncio no se puede mover así",
32
32
  "error.409.listing_cannot_delete_active": "Archívalo primero — un anuncio a la venta no se puede borrar",
33
33
  "listings.error.unknown": "Algo salió mal con este anuncio",
34
34
  "listings.status.draft": "Borrador",
@@ -144,6 +144,12 @@ export const listingsI18nBundleEs = {
144
144
  "listings.mine.archive": "Archivar",
145
145
  "listings.mine.complete": "Marcar como vendido",
146
146
  "listings.mine.delete": "Borrar",
147
+ "listings.mine.move.published": "Publicar de nuevo",
148
+ "listings.mine.move.pending": "Enviar a revisión",
149
+ "listings.mine.move.paused": "Pausar",
150
+ "listings.mine.move.draft": "Volver a borradores",
151
+ "listings.mine.move.renew": "Renovar",
152
+ "listings.mine.view": "Ver",
147
153
  "listings.mine.delete_confirm_title": "¿Borrar este anuncio?",
148
154
  "listings.mine.delete_confirm_body": "Desaparece de tu panel y no se puede recuperar. Archivarlo lo conserva.",
149
155
  "listings.favorites.title": "Favoritos",
@@ -158,7 +164,7 @@ export const listingsI18nBundleEs = {
158
164
  "listings.blocked.sign_in": "Inicia sesión para hacer esto",
159
165
  "listings.blocked.guest": "Esta cuenta todavía no puede hacerlo — termina de configurarla primero",
160
166
  "listings.blocked.mandate_unknown": "No pudimos comprobar tu cuenta, así que no adivinamos si puedes hacerlo",
161
- "listings.blocked.transition": "Un anuncio en estado «{from_status}» no se puede mover así",
167
+ "listings.blocked.transition": "Desde su estado actual, el anuncio no se puede mover así",
162
168
  "listings.blocked.delete_active": "Archívalo primero — un anuncio a la venta no se puede borrar",
163
169
  "listings.blocked.in_flight": "Un momento — eso ya está en marcha",
164
170
  "listings.blocked.no_editor": "Esta aplicación todavía no tiene una pantalla para editar un anuncio",
@@ -1 +1 @@
1
- {"version":3,"file":"es.js","sourceRoot":"","sources":["../../src/i18n/es.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAmB;IAClD,GAAG,qBAAqB;IAExB,4EAA4E;IAC5E,6BAA6B,EAAE,8BAA8B;IAC7D,0BAA0B,EACxB,uDAAuD;IACzD,uCAAuC,EACrC,sDAAsD;IACxD,yCAAyC,EACvC,2CAA2C;IAC7C,qCAAqC,EACnC,gDAAgD;IAClD,yCAAyC,EACvC,2DAA2D;IAC7D,6BAA6B,EAAE,yBAAyB;IACxD,6BAA6B,EAAE,2BAA2B;IAC1D,6BAA6B,EAAE,iCAAiC;IAChE,sCAAsC,EACpC,4DAA4D;IAC9D,wCAAwC,EACtC,8DAA8D;IAEhE,wBAAwB,EAAE,iCAAiC;IAE3D,uBAAuB,EAAE,UAAU;IACnC,yBAAyB,EAAE,aAAa;IACxC,2BAA2B,EAAE,WAAW;IACxC,wBAAwB,EAAE,UAAU;IACpC,yBAAyB,EAAE,UAAU;IACrC,sBAAsB,EAAE,SAAS;IACjC,0BAA0B,EAAE,WAAW;IACvC,yBAAyB,EAAE,UAAU;IACrC,0BAA0B,EAAE,WAAW;IAEvC,kCAAkC,EAChC,uEAAuE;IACzE,uCAAuC,EACrC,yFAAyF;IAC3F,qCAAqC,EACnC,iEAAiE;IACnE,kCAAkC,EAChC,sCAAsC;IACxC,uCAAuC,EACrC,4DAA4D;IAC9D,8BAA8B,EAC5B,iEAAiE;IACnE,yCAAyC,EACvC,sEAAsE;IAExE,wBAAwB,EAAE,UAAU;IACpC,iCAAiC,EAAE,oBAAoB;IACvD,4BAA4B,EAAE,wBAAwB;IACtD,4BAA4B,EAAE,sBAAsB;IACpD,+BAA+B,EAAE,qBAAqB;IACtD,wBAAwB,EAAE,oBAAoB;IAC9C,uBAAuB,EAAE,gBAAgB;IACzC,sBAAsB,EAAE,uBAAuB;IAC/C,yBAAyB,EAAE,OAAO;IAClC,6BAA6B,EAAE,qBAAqB;IACpD,4BAA4B,EAAE,qBAAqB;IAEnD,yBAAyB,EAAE,sBAAsB;IACjD,6BAA6B,EAAE,gCAAgC;IAC/D,uBAAuB,EAAE,YAAY;IACrC,2BAA2B,EAAE,yCAAyC;IACtE,yBAAyB,EAAE,4BAA4B;IACvD,2BAA2B,EAAE,mCAAmC;IAChE,+BAA+B,EAC7B,sFAAsF;IACxF,iCAAiC,EAC/B,8CAA8C;IAChD,6BAA6B,EAAE,aAAa;IAC5C,uBAAuB,EAAE,UAAU;IACnC,0BAA0B,EAAE,oCAAoC;IAChE,qCAAqC,EACnC,iDAAiD;IACnD,oCAAoC,EAClC,yEAAyE;IAC3E,2BAA2B,EAAE,yBAAyB;IACtD,8BAA8B,EAAE,qBAAqB;IACrD,4BAA4B,EAAE,4BAA4B;IAC1D,uBAAuB,EAAE,aAAa;IACtC,uBAAuB,EAAE,SAAS;IAClC,sBAAsB,EAAE,mBAAmB;IAC3C,2BAA2B,EAAE,WAAW;IAExC,4BAA4B,EAAE,eAAe;IAC7C,6BAA6B,EAAE,mBAAmB;IAClD,2BAA2B,EAAE,WAAW;IACxC,gCAAgC,EAC9B,0DAA0D;IAC5D,oCAAoC,EAAE,6BAA6B;IACnE,2CAA2C,EACzC,sEAAsE;IACxE,8BAA8B,EAAE,QAAQ;IACxC,iCAAiC,EAC/B,yDAAyD;IAC3D,oCAAoC,EAAE,aAAa;IACnD,8BAA8B,EAAE,QAAQ;IACxC,gCAAgC,EAC9B,gEAAgE;IAClE,iCAAiC,EAAE,QAAQ;IAC3C,iCAAiC,EAAE,YAAY;IAC/C,gCAAgC,EAC9B,sFAAsF;IACxF,iCAAiC,EAC/B,sFAAsF;IACxF,yBAAyB,EAAE,OAAO;IAClC,kCAAkC,EAChC,0CAA0C;IAC5C,0BAA0B,EAAE,UAAU;IACtC,kCAAkC,EAAE,sCAAsC;IAC1E,sCAAsC,EACpC,0DAA0D;IAC5D,iCAAiC,EAC/B,8CAA8C;IAChD,gCAAgC,EAAE,qCAAqC;IACvE,4BAA4B,EAAE,4BAA4B;IAC1D,wBAAwB,EAAE,kBAAkB;IAC5C,iCAAiC,EAAE,kCAAkC;IACrE,uBAAuB,EAAE,kBAAkB;IAC3C,4BAA4B,EAAE,uBAAuB;IACrD,6BAA6B,EAC3B,kEAAkE;IACpE,yBAAyB,EAAE,YAAY;IACvC,wBAAwB,EAAE,mBAAmB;IAC7C,0BAA0B,EAAE,UAAU;IACtC,4BAA4B,EAAE,qBAAqB;IACnD,6BAA6B,EAAE,WAAW;IAC1C,kCAAkC,EAChC,uEAAuE;IACzE,iCAAiC,EAC/B,sEAAsE;IACxE,kCAAkC,EAChC,mDAAmD;IAErD,sCAAsC,EACpC,+DAA+D;IACjE,2CAA2C,EACzC,iIAAiI;IACnI,yCAAyC,EACvC,4CAA4C;IAC9C,mCAAmC,EAAE,oCAAoC;IACzE,+BAA+B,EAC7B,iDAAiD;IACnD,qCAAqC,EAAE,mCAAmC;IAC1E,qCAAqC,EAAE,kCAAkC;IACzE,iCAAiC,EAAE,qCAAqC;IACxE,8CAA8C,EAC5C,wFAAwF;IAE1F,qBAAqB,EAAE,cAAc;IACrC,0BAA0B,EAAE,SAAS;IACrC,0BAA0B,EAAE,YAAY;IACxC,4BAA4B,EAAE,SAAS;IACvC,uBAAuB,EAAE,wBAAwB;IACjD,2BAA2B,EAAE,gCAAgC;IAC7D,qBAAqB,EAAE,0BAA0B;IACjD,qBAAqB,EAAE,YAAY;IACnC,+BAA+B,EAAE,gCAAgC;IACjE,4BAA4B,EAAE,yCAAyC;IACvE,4BAA4B,EAAE,gDAAgD;IAC9E,8BAA8B,EAAE,sDAAsD;IACtF,6BAA6B,EAC3B,2CAA2C;IAC7C,iCAAiC,EAAE,uCAAuC;IAC1E,mCAAmC,EAAE,2CAA2C;IAChF,mCAAmC,EACjC,6DAA6D;IAC/D,iCAAiC,EAAE,gCAAgC;IACnE,oBAAoB,EAAE,QAAQ;IAC9B,uBAAuB,EAAE,UAAU;IACnC,wBAAwB,EAAE,qBAAqB;IAC/C,sBAAsB,EAAE,QAAQ;IAChC,oCAAoC,EAAE,uBAAuB;IAC7D,mCAAmC,EACjC,yEAAyE;IAE3E,0BAA0B,EAAE,WAAW;IACvC,4BAA4B,EAAE,yBAAyB;IACvD,gCAAgC,EAAE,iCAAiC;IACnE,0BAA0B,EAAE,8BAA8B;IAC1D,+BAA+B,EAC7B,kEAAkE;IACpE,iCAAiC,EAC/B,8EAA8E;IAEhF,2EAA2E;IAC3E,qCAAqC,EACnC,mDAAmD;IACrD,0CAA0C,EACxC,iGAAiG;IAEnG,0BAA0B,EAAE,+BAA+B;IAC3D,wBAAwB,EACtB,wEAAwE;IAC1E,kCAAkC,EAChC,yEAAyE;IAC3E,6BAA6B,EAC3B,4DAA4D;IAC9D,gCAAgC,EAC9B,8DAA8D;IAChE,4BAA4B,EAAE,oCAAoC;IAClE,4BAA4B,EAC1B,sEAAsE;IAExE,oBAAoB,EAAE,UAAU;IAChC,oBAAoB,EAAE,WAAW;IACjC,yBAAyB,EAAE,eAAe;IAE1C,qBAAqB,EAAE,SAAS;IAChC,sBAAsB,EAAE,kBAAkB;IAC1C,4BAA4B,EAAE,OAAO;IACrC,mBAAmB,EAAE,cAAc;IACnC,yBAAyB,EAAE,MAAM;IACjC,wBAAwB,EAAE,WAAW;CACtC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAgB;IACrD,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"es.js","sourceRoot":"","sources":["../../src/i18n/es.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAmB;IAClD,GAAG,qBAAqB;IAExB,4EAA4E;IAC5E,6BAA6B,EAAE,8BAA8B;IAC7D,0BAA0B,EACxB,uDAAuD;IACzD,uCAAuC,EACrC,sDAAsD;IACxD,yCAAyC,EACvC,2CAA2C;IAC7C,qCAAqC,EACnC,gDAAgD;IAClD,yCAAyC,EACvC,2DAA2D;IAC7D,6BAA6B,EAAE,yBAAyB;IACxD,6BAA6B,EAAE,2BAA2B;IAC1D,6BAA6B,EAAE,iCAAiC;IAChE,sCAAsC,EACpC,0DAA0D;IAC5D,wCAAwC,EACtC,8DAA8D;IAEhE,wBAAwB,EAAE,iCAAiC;IAE3D,uBAAuB,EAAE,UAAU;IACnC,yBAAyB,EAAE,aAAa;IACxC,2BAA2B,EAAE,WAAW;IACxC,wBAAwB,EAAE,UAAU;IACpC,yBAAyB,EAAE,UAAU;IACrC,sBAAsB,EAAE,SAAS;IACjC,0BAA0B,EAAE,WAAW;IACvC,yBAAyB,EAAE,UAAU;IACrC,0BAA0B,EAAE,WAAW;IAEvC,kCAAkC,EAChC,uEAAuE;IACzE,uCAAuC,EACrC,yFAAyF;IAC3F,qCAAqC,EACnC,iEAAiE;IACnE,kCAAkC,EAChC,sCAAsC;IACxC,uCAAuC,EACrC,4DAA4D;IAC9D,8BAA8B,EAC5B,iEAAiE;IACnE,yCAAyC,EACvC,sEAAsE;IAExE,wBAAwB,EAAE,UAAU;IACpC,iCAAiC,EAAE,oBAAoB;IACvD,4BAA4B,EAAE,wBAAwB;IACtD,4BAA4B,EAAE,sBAAsB;IACpD,+BAA+B,EAAE,qBAAqB;IACtD,wBAAwB,EAAE,oBAAoB;IAC9C,uBAAuB,EAAE,gBAAgB;IACzC,sBAAsB,EAAE,uBAAuB;IAC/C,yBAAyB,EAAE,OAAO;IAClC,6BAA6B,EAAE,qBAAqB;IACpD,4BAA4B,EAAE,qBAAqB;IAEnD,yBAAyB,EAAE,sBAAsB;IACjD,6BAA6B,EAAE,gCAAgC;IAC/D,uBAAuB,EAAE,YAAY;IACrC,2BAA2B,EAAE,yCAAyC;IACtE,yBAAyB,EAAE,4BAA4B;IACvD,2BAA2B,EAAE,mCAAmC;IAChE,+BAA+B,EAC7B,sFAAsF;IACxF,iCAAiC,EAC/B,8CAA8C;IAChD,6BAA6B,EAAE,aAAa;IAC5C,uBAAuB,EAAE,UAAU;IACnC,0BAA0B,EAAE,oCAAoC;IAChE,qCAAqC,EACnC,iDAAiD;IACnD,oCAAoC,EAClC,yEAAyE;IAC3E,2BAA2B,EAAE,yBAAyB;IACtD,8BAA8B,EAAE,qBAAqB;IACrD,4BAA4B,EAAE,4BAA4B;IAC1D,uBAAuB,EAAE,aAAa;IACtC,uBAAuB,EAAE,SAAS;IAClC,sBAAsB,EAAE,mBAAmB;IAC3C,2BAA2B,EAAE,WAAW;IAExC,4BAA4B,EAAE,eAAe;IAC7C,6BAA6B,EAAE,mBAAmB;IAClD,2BAA2B,EAAE,WAAW;IACxC,gCAAgC,EAC9B,0DAA0D;IAC5D,oCAAoC,EAAE,6BAA6B;IACnE,2CAA2C,EACzC,sEAAsE;IACxE,8BAA8B,EAAE,QAAQ;IACxC,iCAAiC,EAC/B,yDAAyD;IAC3D,oCAAoC,EAAE,aAAa;IACnD,8BAA8B,EAAE,QAAQ;IACxC,gCAAgC,EAC9B,gEAAgE;IAClE,iCAAiC,EAAE,QAAQ;IAC3C,iCAAiC,EAAE,YAAY;IAC/C,gCAAgC,EAC9B,sFAAsF;IACxF,iCAAiC,EAC/B,sFAAsF;IACxF,yBAAyB,EAAE,OAAO;IAClC,kCAAkC,EAChC,0CAA0C;IAC5C,0BAA0B,EAAE,UAAU;IACtC,kCAAkC,EAAE,sCAAsC;IAC1E,sCAAsC,EACpC,0DAA0D;IAC5D,iCAAiC,EAC/B,8CAA8C;IAChD,gCAAgC,EAAE,qCAAqC;IACvE,4BAA4B,EAAE,4BAA4B;IAC1D,wBAAwB,EAAE,kBAAkB;IAC5C,iCAAiC,EAAE,kCAAkC;IACrE,uBAAuB,EAAE,kBAAkB;IAC3C,4BAA4B,EAAE,uBAAuB;IACrD,6BAA6B,EAC3B,kEAAkE;IACpE,yBAAyB,EAAE,YAAY;IACvC,wBAAwB,EAAE,mBAAmB;IAC7C,0BAA0B,EAAE,UAAU;IACtC,4BAA4B,EAAE,qBAAqB;IACnD,6BAA6B,EAAE,WAAW;IAC1C,kCAAkC,EAChC,uEAAuE;IACzE,iCAAiC,EAC/B,sEAAsE;IACxE,kCAAkC,EAChC,mDAAmD;IAErD,sCAAsC,EACpC,+DAA+D;IACjE,2CAA2C,EACzC,iIAAiI;IACnI,yCAAyC,EACvC,4CAA4C;IAC9C,mCAAmC,EAAE,oCAAoC;IACzE,+BAA+B,EAC7B,iDAAiD;IACnD,qCAAqC,EAAE,mCAAmC;IAC1E,qCAAqC,EAAE,kCAAkC;IACzE,iCAAiC,EAAE,qCAAqC;IACxE,8CAA8C,EAC5C,wFAAwF;IAE1F,qBAAqB,EAAE,cAAc;IACrC,0BAA0B,EAAE,SAAS;IACrC,0BAA0B,EAAE,YAAY;IACxC,4BAA4B,EAAE,SAAS;IACvC,uBAAuB,EAAE,wBAAwB;IACjD,2BAA2B,EAAE,gCAAgC;IAC7D,qBAAqB,EAAE,0BAA0B;IACjD,qBAAqB,EAAE,YAAY;IACnC,+BAA+B,EAAE,gCAAgC;IACjE,4BAA4B,EAAE,yCAAyC;IACvE,4BAA4B,EAAE,gDAAgD;IAC9E,8BAA8B,EAAE,sDAAsD;IACtF,6BAA6B,EAC3B,2CAA2C;IAC7C,iCAAiC,EAAE,uCAAuC;IAC1E,mCAAmC,EAAE,2CAA2C;IAChF,mCAAmC,EACjC,6DAA6D;IAC/D,iCAAiC,EAAE,gCAAgC;IACnE,oBAAoB,EAAE,QAAQ;IAC9B,uBAAuB,EAAE,UAAU;IACnC,wBAAwB,EAAE,qBAAqB;IAC/C,sBAAsB,EAAE,QAAQ;IAChC,8BAA8B,EAAE,mBAAmB;IACnD,4BAA4B,EAAE,mBAAmB;IACjD,2BAA2B,EAAE,QAAQ;IACrC,0BAA0B,EAAE,qBAAqB;IACjD,0BAA0B,EAAE,SAAS;IACrC,oBAAoB,EAAE,KAAK;IAC3B,oCAAoC,EAAE,uBAAuB;IAC7D,mCAAmC,EACjC,yEAAyE;IAE3E,0BAA0B,EAAE,WAAW;IACvC,4BAA4B,EAAE,yBAAyB;IACvD,gCAAgC,EAAE,iCAAiC;IACnE,0BAA0B,EAAE,8BAA8B;IAC1D,+BAA+B,EAC7B,kEAAkE;IACpE,iCAAiC,EAC/B,8EAA8E;IAEhF,2EAA2E;IAC3E,qCAAqC,EACnC,mDAAmD;IACrD,0CAA0C,EACxC,iGAAiG;IAEnG,0BAA0B,EAAE,+BAA+B;IAC3D,wBAAwB,EACtB,wEAAwE;IAC1E,kCAAkC,EAChC,yEAAyE;IAC3E,6BAA6B,EAC3B,0DAA0D;IAC5D,gCAAgC,EAC9B,8DAA8D;IAChE,4BAA4B,EAAE,oCAAoC;IAClE,4BAA4B,EAC1B,sEAAsE;IAExE,oBAAoB,EAAE,UAAU;IAChC,oBAAoB,EAAE,WAAW;IACjC,yBAAyB,EAAE,eAAe;IAE1C,qBAAqB,EAAE,SAAS;IAChC,sBAAsB,EAAE,kBAAkB;IAC1C,4BAA4B,EAAE,OAAO;IACrC,mBAAmB,EAAE,cAAc;IACnC,yBAAyB,EAAE,MAAM;IACjC,wBAAwB,EAAE,WAAW;CACtC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAgB;IACrD,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;AAClD,CAAC"}
@@ -195,6 +195,26 @@ export declare const LISTINGS_I18N_KEYS: {
195
195
  readonly mineArchive: "listings.mine.archive";
196
196
  readonly mineComplete: "listings.mine.complete";
197
197
  readonly mineDelete: "listings.mine.delete";
198
+ /**
199
+ * One caption per MOVE the seller may make, keyed by where the move lands
200
+ * — the vocabulary `available_transitions` speaks.
201
+ *
202
+ * `archived` and `sold` reuse the two captions above, because those two
203
+ * edges have had buttons since this pane existed and renaming them now
204
+ * would be a change of wording pretending to be a change of capability.
205
+ * The rest are the way BACK, which had no route until stapel-listings
206
+ * 0.20.0 and therefore no caption: a seller who marked something sold by
207
+ * mistake could only start again.
208
+ */
209
+ readonly moveToPublished: "listings.mine.move.published";
210
+ readonly moveToPending: "listings.mine.move.pending";
211
+ readonly moveToPaused: "listings.mine.move.paused";
212
+ readonly moveToDraft: "listings.mine.move.draft";
213
+ /** EXPIRED → PENDING is the same edge as "submit", asked at a different
214
+ * moment: nothing is wrong with the listing, its time simply ran out. */
215
+ readonly moveRenew: "listings.mine.move.renew";
216
+ /** Open this listing the way a buyer sees it. */
217
+ readonly mineView: "listings.mine.view";
198
218
  /** Deleting is irreversible, so it asks — through the shared SkinConfirm,
199
219
  * which is a bottom sheet on a phone. */
200
220
  readonly mineDeleteConfirmTitle: "listings.mine.delete_confirm_title";
@@ -1 +1 @@
1
- {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/i18n/keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/D;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;IAe7B,+CAA+C;;IAE/C,qEAAqE;;IAErE,yEAAyE;;;;;IAKzE,oEAAoE;;;;;;;IASpE;;;;;;;;;OASG;;IAEH,yEAAyE;;IAEzE;;2EAEuE;;IAEvE;2EACuE;;IAEvE;oDACgD;;;;;;;IAShD,oEAAoE;;IAEpE;;;8DAG0D;;IAE1D,8EAA8E;;;;;;;;;;;IAW9E;;oDAEgD;;IAEhD;;;;;OAKG;;IAEH,2DAA2D;;;;;;;;;;;;;;;;;;;;;;IAwB3D;;6EAEyE;;;;;;;;IAQzE;;;yCAGqC;;;;;;;;;;;;;;;;;IAmBrC;;+CAE2C;;IAE3C;;uEAEmE;;;;;;;;;;;;IAcnE;iEAC6D;;;;IAI7D;iEAC6D;;;;;;;;IAQ7D;6CACyC;;;;;;;;;;;;IAgBzC;yCACqC;;;;IAIrC;;wEAEoE;;;;;;;;;;;CAiB5D,CAAC;AAEX,MAAM,MAAM,eAAe,GACzB,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;AAE/D;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqMvD,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAE3D"}
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/i18n/keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/D;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;IAe7B,+CAA+C;;IAE/C,qEAAqE;;IAErE,yEAAyE;;;;;IAKzE,oEAAoE;;;;;;;IASpE;;;;;;;;;OASG;;IAEH,yEAAyE;;IAEzE;;2EAEuE;;IAEvE;2EACuE;;IAEvE;oDACgD;;;;;;;IAShD,oEAAoE;;IAEpE;;;8DAG0D;;IAE1D,8EAA8E;;;;;;;;;;;IAW9E;;oDAEgD;;IAEhD;;;;;OAKG;;IAEH,2DAA2D;;;;;;;;;;;;;;;;;;;;;;IAwB3D;;6EAEyE;;;;;;;;IAQzE;;;yCAGqC;;;;;;;;;;;;;;;;;IAmBrC;;+CAE2C;;IAE3C;;uEAEmE;;;;;;;;;;;;IAcnE;iEAC6D;;;;IAI7D;iEAC6D;;;;;;;;IAQ7D;;;;;;;;;;OAUG;;;;;IAKH;6EACyE;;IAEzE,iDAAiD;;IAEjD;6CACyC;;;;;;;;;;;;IAgBzC;yCACqC;;;;IAIrC;;wEAEoE;;;;;;;;;;;CAiB5D,CAAC;AAEX,MAAM,MAAM,eAAe,GACzB,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;AAE/D;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAoOvD,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAE3D"}
package/dist/i18n/keys.js CHANGED
@@ -202,6 +202,26 @@ export const LISTINGS_I18N_KEYS = {
202
202
  mineArchive: "listings.mine.archive",
203
203
  mineComplete: "listings.mine.complete",
204
204
  mineDelete: "listings.mine.delete",
205
+ /**
206
+ * One caption per MOVE the seller may make, keyed by where the move lands
207
+ * — the vocabulary `available_transitions` speaks.
208
+ *
209
+ * `archived` and `sold` reuse the two captions above, because those two
210
+ * edges have had buttons since this pane existed and renaming them now
211
+ * would be a change of wording pretending to be a change of capability.
212
+ * The rest are the way BACK, which had no route until stapel-listings
213
+ * 0.20.0 and therefore no caption: a seller who marked something sold by
214
+ * mistake could only start again.
215
+ */
216
+ moveToPublished: "listings.mine.move.published",
217
+ moveToPending: "listings.mine.move.pending",
218
+ moveToPaused: "listings.mine.move.paused",
219
+ moveToDraft: "listings.mine.move.draft",
220
+ /** EXPIRED → PENDING is the same edge as "submit", asked at a different
221
+ * moment: nothing is wrong with the listing, its time simply ran out. */
222
+ moveRenew: "listings.mine.move.renew",
223
+ /** Open this listing the way a buyer sees it. */
224
+ mineView: "listings.mine.view",
205
225
  /** Deleting is irreversible, so it asks — through the shared SkinConfirm,
206
226
  * which is a bottom sheet on a phone. */
207
227
  mineDeleteConfirmTitle: "listings.mine.delete_confirm_title",
@@ -364,6 +384,12 @@ export const listingsI18nBundleEn = {
364
384
  "listings.mine.archive": "Archive",
365
385
  "listings.mine.complete": "Mark sold",
366
386
  "listings.mine.delete": "Delete",
387
+ "listings.mine.move.published": "Publish again",
388
+ "listings.mine.move.pending": "Send for review",
389
+ "listings.mine.move.paused": "Pause",
390
+ "listings.mine.move.draft": "Move back to drafts",
391
+ "listings.mine.move.renew": "Renew",
392
+ "listings.mine.view": "View",
367
393
  "listings.mine.delete_confirm_title": "Delete this listing?",
368
394
  "listings.mine.delete_confirm_body": "It disappears from your dashboard and cannot be brought back. Archiving keeps it.",
369
395
  "listings.favorites.title": "Favourites",
@@ -375,7 +401,32 @@ export const listingsI18nBundleEn = {
375
401
  "listings.blocked.sign_in": "Sign in to do this",
376
402
  "listings.blocked.guest": "Your account cannot do this yet — finish setting it up first",
377
403
  "listings.blocked.mandate_unknown": "We could not check your account, so we are not guessing whether you may do this",
378
- "listings.blocked.transition": "A listing that is {from_status} cannot be moved that way",
404
+ /**
405
+ * THE REFUSAL DOES NOT QUOTE THE STATE'S CODE NAME.
406
+ *
407
+ * Both sentences below used to carry `{from_status}`, and what landed in
408
+ * that slot was the wire value: a live cabinet told a seller, in Russian,
409
+ * that "a listing in status 'draft' cannot be moved that way" — and then
410
+ * the same sentence with 'archived' — while the row's own status tag, two
411
+ * lines above, said "Draft" and "Archived" in the reader's own words.
412
+ * The translation existed; it simply was not the thing being interpolated.
413
+ *
414
+ * The placeholder is gone rather than fed a translated value, because it
415
+ * was never adding information the screen did not already carry: the status
416
+ * is named, in words, beside every control this refusal appears under. What
417
+ * the reader needs is which MOVE is impossible, and that is the control
418
+ * they are looking at.
419
+ *
420
+ * The SERVER's own 409 (`error.409.invalid_listing_transition`) carries the
421
+ * same placeholder and is reworded in the ru and es bundles beside this
422
+ * one, where a real reader met it. It is deliberately NOT overridden in the
423
+ * English bundle: that bundle spreads the generated backend texts whole,
424
+ * and a hand-written entry for one error code makes this pair's catalogue
425
+ * claim a namespace it does not own — `stapel/i18n-locale-parity` says so
426
+ * and is right. The refusal is in any case now close to unreachable: the
427
+ * dashboard offers only the moves the server declared.
428
+ */
429
+ "listings.blocked.transition": "This listing cannot be moved that way from where it is",
379
430
  "listings.blocked.delete_active": "Archive it first — a listing that is on sale cannot be deleted",
380
431
  "listings.blocked.in_flight": "One moment — that is already under way",
381
432
  "listings.blocked.no_editor": "This app has no screen for editing a listing yet",