@stapel/listings-react 0.3.1 → 0.4.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 (84) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/MODULE.md +12 -6
  3. package/README.md +33 -17
  4. package/dist/api/generated/schema.d.ts +127 -1
  5. package/dist/api/generated/schema.d.ts.map +1 -1
  6. package/dist/api/listingsApi.d.ts +35 -22
  7. package/dist/api/listingsApi.d.ts.map +1 -1
  8. package/dist/api/listingsApi.js +17 -0
  9. package/dist/api/listingsApi.js.map +1 -1
  10. package/dist/api/types.d.ts +43 -2
  11. package/dist/api/types.d.ts.map +1 -1
  12. package/dist/api/types.js.map +1 -1
  13. package/dist/default/MyListingsPane.d.ts +24 -11
  14. package/dist/default/MyListingsPane.d.ts.map +1 -1
  15. package/dist/default/MyListingsPane.js +26 -10
  16. package/dist/default/MyListingsPane.js.map +1 -1
  17. package/dist/headless/MyListings.d.ts +27 -12
  18. package/dist/headless/MyListings.d.ts.map +1 -1
  19. package/dist/headless/MyListings.js +29 -7
  20. package/dist/headless/MyListings.js.map +1 -1
  21. package/dist/i18n/es.d.ts.map +1 -1
  22. package/dist/i18n/es.js +7 -2
  23. package/dist/i18n/es.js.map +1 -1
  24. package/dist/i18n/generated/errors.es.gen.d.ts +1 -1
  25. package/dist/i18n/generated/errors.es.gen.js +1 -1
  26. package/dist/i18n/generated/errors.gen.d.ts +6 -0
  27. package/dist/i18n/generated/errors.gen.d.ts.map +1 -1
  28. package/dist/i18n/generated/errors.gen.js +3 -0
  29. package/dist/i18n/generated/errors.gen.js.map +1 -1
  30. package/dist/i18n/generated/errors.ru.gen.d.ts +1 -1
  31. package/dist/i18n/generated/errors.ru.gen.js +1 -1
  32. package/dist/i18n/keys.d.ts +9 -2
  33. package/dist/i18n/keys.d.ts.map +1 -1
  34. package/dist/i18n/keys.js +14 -3
  35. package/dist/i18n/keys.js.map +1 -1
  36. package/dist/i18n/ru.d.ts.map +1 -1
  37. package/dist/i18n/ru.js +7 -2
  38. package/dist/i18n/ru.js.map +1 -1
  39. package/dist/index.d.ts +8 -6
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +8 -6
  42. package/dist/index.js.map +1 -1
  43. package/dist/model/mine.d.ts +44 -0
  44. package/dist/model/mine.d.ts.map +1 -0
  45. package/dist/model/mine.js +52 -0
  46. package/dist/model/mine.js.map +1 -0
  47. package/dist/model/mineSource.d.ts +39 -34
  48. package/dist/model/mineSource.d.ts.map +1 -1
  49. package/dist/model/mineSource.js +10 -41
  50. package/dist/model/mineSource.js.map +1 -1
  51. package/dist/model/mutations.d.ts.map +1 -1
  52. package/dist/model/mutations.js +11 -4
  53. package/dist/model/mutations.js.map +1 -1
  54. package/dist/model/queryKeys.d.ts +7 -2
  55. package/dist/model/queryKeys.d.ts.map +1 -1
  56. package/dist/model/queryKeys.js +2 -0
  57. package/dist/model/queryKeys.js.map +1 -1
  58. package/dist/model/status.d.ts +12 -31
  59. package/dist/model/status.d.ts.map +1 -1
  60. package/dist/model/status.js +44 -0
  61. package/dist/model/status.js.map +1 -1
  62. package/llms.txt +6 -4
  63. package/manifest.json +38 -6
  64. package/nav-manifest.json +1 -1
  65. package/package.json +1 -1
  66. package/src/analytics/generated/events.json +1 -1
  67. package/src/api/generated/schema.ts +127 -1
  68. package/src/api/listingsApi.ts +60 -21
  69. package/src/api/types.ts +46 -2
  70. package/src/default/MyListingsPane.tsx +98 -34
  71. package/src/headless/MyListings.tsx +62 -22
  72. package/src/i18n/es.ts +10 -3
  73. package/src/i18n/generated/errors.es.gen.ts +1 -1
  74. package/src/i18n/generated/errors.gen.ts +3 -0
  75. package/src/i18n/generated/errors.json +9 -0
  76. package/src/i18n/generated/errors.ru.gen.ts +1 -1
  77. package/src/i18n/keys.ts +16 -4
  78. package/src/i18n/ru.ts +10 -3
  79. package/src/index.ts +16 -5
  80. package/src/model/mine.ts +70 -0
  81. package/src/model/mineSource.ts +46 -41
  82. package/src/model/mutations.ts +11 -4
  83. package/src/model/queryKeys.ts +9 -2
  84. package/src/model/status.ts +15 -0
@@ -60,8 +60,31 @@ export type ListingActionResponse = Schemas["ListingActionResponse"];
60
60
  export type FavoriteToggleResponse = Schemas["FavoriteToggleResponse"];
61
61
  /** `DELETE /{pk}/` 200. */
62
62
  export type DeleteResponse = Schemas["DeleteResponse"];
63
- /** The keyset envelope both card lists come back in (`IDAnchorPagination`). */
63
+ /** The keyset envelope both public card lists come back in
64
+ * (`IDAnchorPagination`). */
64
65
  export type PaginatedListingCards = Schemas["PaginatedListingCardList"];
66
+ /**
67
+ * One row of `GET /listings/my/listings/` — the OWNER's card.
68
+ *
69
+ * A superset of {@link ListingCard}, and the two additions are the two things
70
+ * only an owner is owed (stapel-listings 0.7.0, `MyListingCardSerializer`):
71
+ *
72
+ * - `moderation_status`, the second axis. `model/status.ts` argues at length
73
+ * that a dashboard cannot derive "your edit is being screened" from
74
+ * `status` — a re-published LIVE listing keeps `status: "published"` and
75
+ * moves only this field. The public card omits it, so before 0.7.0 the
76
+ * dashboard row passed `"approved"` as an honest stand-in and simply could
77
+ * not show the row that most needed showing.
78
+ * - the `*_draft` twins. `title`/`price`/`images` are the PUBLISHED fields
79
+ * and are empty on a listing that has never been published, so a drafts
80
+ * tab keyed off them is a column of blank rows. `myListingTitle` /
81
+ * `myListingPrice` (`model/mine.ts`) are the one place the fallback lives.
82
+ */
83
+ export type MyListingCard = Schemas["MyListingCard"];
84
+ /** The keyset envelope `GET /listings/my/listings/` comes back in — the same
85
+ * `IDAnchorPagination` shape as {@link PaginatedListingCards}, over the owner
86
+ * row. */
87
+ export type PaginatedMyListingCards = Schemas["PaginatedMyListingCardList"];
65
88
  /**
66
89
  * The nine lifecycle states, as `models.ListingStatus` declares them.
67
90
  *
@@ -136,13 +159,31 @@ export interface ListingFeatureView {
136
159
  /** Re-exported so a consumer types a feature config without also depending on
137
160
  * `@stapel/attributes-react` directly. */
138
161
  export type { FeatureConfig, FeatureDef, FeatureValueDto };
139
- /** Query parameters of both keyset-paginated card lists. */
162
+ /** Query parameters of every keyset-paginated card list. */
140
163
  export interface ListingPageParams {
141
164
  /** Opaque cursor from a previous answer. */
142
165
  readonly anchor?: string;
143
166
  readonly direction?: "next" | "prev" | "center";
144
167
  readonly limit?: number;
145
168
  }
169
+ /**
170
+ * `GET /listings/my/listings/` — a page, plus the statuses to narrow to.
171
+ *
172
+ * `status` is a SET because a dashboard tab is one (`active` is
173
+ * `published` + `pending`, `drafts` is `draft` + `rejected` — the groupings
174
+ * are the server's, copied in `model/status.ts` so a tab's rows and its count
175
+ * cannot describe different sets). An empty or absent array means every
176
+ * status, which is what the route answers with no parameter at all.
177
+ *
178
+ * On the wire it goes as one comma-separated value; stapel-listings accepts
179
+ * that and the repeated-parameter spelling interchangeably
180
+ * (`views.parse_status_filter`). An unknown value is a `400`
181
+ * `error.400.listing_invalid_status_filter`, not an empty page — so a status
182
+ * this pair does not know about cannot silently look like "you have none".
183
+ */
184
+ export interface MyListingsParams extends ListingPageParams {
185
+ readonly status?: readonly ListingLifecycleStatus[];
186
+ }
146
187
  /**
147
188
  * The currency a composer starts a new listing in.
148
189
  *
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,4EAA4E;AAC5E,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;AAE5C,kEAAkE;AAClE,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAErD,gFAAgF;AAChF,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAEjD;;yCAEyC;AACzC,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAEnD,mDAAmD;AACnD,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAE/D;uEACuE;AACvE,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAEzD,gEAAgE;AAChE,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEvD;iDACiD;AACjD,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEzD,0CAA0C;AAC1C,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAErE,6CAA6C;AAC7C,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAEvE,2BAA2B;AAC3B,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAEvD,+EAA+E;AAC/E,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;AAExE;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,sBAAsB,EAU7D,CAAC;AAEF;+EAC+E;AAC/E,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAE9D;gEACgE;AAChE,eAAO,MAAM,mBAAmB,EAAE,SAAS,uBAAuB,EAKjE,CAAC;AAEF,8DAA8D;AAC9D,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAEtE;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D;;;;oBAIoB;AACpB,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAE3D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;6DAEyD;IACzD,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,wCAAwC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,uCAAuC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,yEAAyE;IACzE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,yEAAyE;AACzE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,CAAC;CAC7C;AAED;0CAC0C;AAC1C,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;AAE3D,4DAA4D;AAC5D,MAAM,WAAW,iBAAiB;IAChC,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IAChD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,QAAQ,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"AA6EA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAsC;IACjE,OAAO;IACP,SAAS;IACT,WAAW;IACX,QAAQ;IACR,SAAS;IACT,MAAM;IACN,UAAU;IACV,SAAS;IACT,UAAU;CACX,CAAC;AAMF;gEACgE;AAChE,MAAM,CAAC,MAAM,mBAAmB,GAAuC;IACrE,SAAS;IACT,UAAU;IACV,UAAU;IACV,cAAc;CACf,CAAC;AA4EF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"AAsGA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAsC;IACjE,OAAO;IACP,SAAS;IACT,WAAW;IACX,QAAQ;IACR,SAAS;IACT,MAAM;IACN,UAAU;IACV,SAAS;IACT,UAAU;CACX,CAAC;AAMF;gEACgE;AAChE,MAAM,CAAC,MAAM,mBAAmB,GAAuC;IACrE,SAAS;IACT,UAAU;IACV,UAAU;IACV,cAAc;CACf,CAAC;AA+FF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC"}
@@ -1,23 +1,36 @@
1
1
  /**
2
2
  * `<MyListingsPane>` — the seller's dashboard.
3
3
  *
4
- * Three counts that are real, and rows that may not be: stapel-listings 0.6.1
5
- * has no owner-scoped list endpoint (`headless/MyListings.tsx` argues it in
6
- * full), so the rows come from an injected source and the pane NAMES the gap
7
- * when there is none. The counters are shown either way, because they are the
8
- * one thing the contract can actually answer.
4
+ * Three counts and the rows behind them, both real since stapel-listings
5
+ * 0.7.0 gave the owner's own listings a route (`GET my/listings/`). Until
6
+ * then this pane showed the counts and NAMED the missing endpoint where the
7
+ * rows should be; `model/mineSource.ts` keeps that history and the seam it
8
+ * left behind.
9
9
  *
10
- * Each row carries both axes. "Published" and "changes under review" appear
11
- * beside each other, which is the entire reason `model/status.ts` exists: a
12
- * dashboard that derived one from the other would tell a seller their live
13
- * listing is offline, or never tell them their edit is being screened.
10
+ * Three things this pane refuses to smooth over:
11
+ *
12
+ * 1. **Both axes on every row.** "Published" and "changes under review" appear
13
+ * beside each other, which is the entire reason `model/status.ts` exists: a
14
+ * dashboard that derived one from the other would tell a seller their live
15
+ * listing is offline, or never tell them their edit is being screened.
16
+ * `moderation_status` is on the owner card, so the row reads the real
17
+ * value rather than the `"approved"` stand-in it used before 0.7.0.
18
+ * 2. **Takedowns are not in a tab.** The three tabs are the SERVER's status
19
+ * groupings and `blocked` is in none of them, because `my/counters` counts
20
+ * it in none of them. Folding it into one would make a tab's rows and its
21
+ * badge describe different sets; leaving it out entirely would hide the
22
+ * one listing whose owner most needs to know. So it sits above the tabs,
23
+ * where it cannot be missed.
24
+ * 3. **An empty tab says which emptiness it is.** "No drafts" and "nothing
25
+ * sold yet" are different sentences and one generic "nothing here" is
26
+ * neither.
14
27
  */
15
28
  import type { ReactElement } from "react";
16
29
  import type { MyListingsSource } from "../model/mineSource.js";
17
30
  import type { ThemeModeProp } from "./types.js";
18
31
  export interface MyListingsPaneProps extends ThemeModeProp {
19
- /** How the host gets the caller's own rows. Absent: the pane says the
20
- * contract cannot answer, and still shows the counts. */
32
+ /** How the host gets the caller's own rows. Absent: the contract's own
33
+ * `GET my/listings/`, which is what a storefront wants. */
21
34
  readonly source?: MyListingsSource;
22
35
  readonly onEdit?: (id: number) => void;
23
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MyListingsPane.d.ts","sourceRoot":"","sources":["../../src/default/MyListingsPane.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAkB1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAQ/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAyIhD,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD;6DACyD;IACzD,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,YAAY,CAoJvE"}
1
+ {"version":3,"file":"MyListingsPane.d.ts","sourceRoot":"","sources":["../../src/default/MyListingsPane.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAkB1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA+JhD,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD;+DAC2D;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,YAAY,CAgLvE"}
@@ -3,6 +3,7 @@ import { Alert, Badge, Button, Empty, Flex, List, Space, Spin, Tabs, Tooltip, Ty
3
3
  import { matchList, matchLoad, useDescribeFlowError, useT } from "@stapel/core";
4
4
  import { useMyListings } from "../headless/MyListings.js";
5
5
  import { useListingActions } from "../headless/ListingActions.js";
6
+ import { myListingTitle, showsDraft } from "../model/mine.js";
6
7
  import { listingStatusView } from "../model/status.js";
7
8
  import { LISTINGS_I18N_KEYS } from "../i18n/keys.js";
8
9
  import { ErrorAlert } from "./ErrorAlert.js";
@@ -13,6 +14,12 @@ const TAB_LABEL = {
13
14
  drafts: LISTINGS_I18N_KEYS.mineTabDrafts,
14
15
  archived: LISTINGS_I18N_KEYS.mineTabArchived,
15
16
  };
17
+ /** One empty sentence per tab — see the header, point 3. */
18
+ const TAB_EMPTY = {
19
+ active: LISTINGS_I18N_KEYS.mineEmptyActive,
20
+ drafts: LISTINGS_I18N_KEYS.mineEmptyDrafts,
21
+ archived: LISTINGS_I18N_KEYS.mineEmptyArchived,
22
+ };
16
23
  /** A control plus the sentence that explains it when it is off. Written once
17
24
  * here because this pane has six of them and a grey button with no reason is
18
25
  * the one shape `ActionAvailability` exists to make impossible. */
@@ -26,14 +33,14 @@ function MyListingRow(props) {
26
33
  const t = useT();
27
34
  const describe = useDescribeFlowError();
28
35
  const actions = useListingActions(props.listing.id, props.listing.status);
29
- // The card list carries `status` but NOT `moderation_status`
30
- // (`ListingCardSerializer` omits it), so a row shows the moderation axis
31
- // only through the one thing the projection does say. Pending is the
32
- // honest default for the notice table's second argument here: it is the
33
- // value that produces a note only when the lifecycle also implies one.
36
+ // Both axes, both real: `MyListingCardSerializer` puts `moderation_status`
37
+ // on the owner's card, so the row no longer has to pass "approved" as a
38
+ // stand-in and lose the one combination that matters a LIVE listing whose
39
+ // edit is under review.
34
40
  const status = props.listing.status === undefined
35
41
  ? undefined
36
- : listingStatusView(props.listing.status, "approved");
42
+ : listingStatusView(props.listing.status, props.listing.moderation_status ?? "approved");
43
+ const heading = myListingTitle(props.listing);
37
44
  return (_jsx(List.Item, { "data-testid": "listings-mine-row", "data-listing-id": props.listing.id, actions: [
38
45
  _jsx(GatedButton, { "data-analytics": "none", "data-analytics-reason": "passthrough \u2014 GatedButton owns the real click point", gate: { available: true }, label: t(LISTINGS_I18N_KEYS.mineEdit), testId: "listings-mine-edit", onClick: () => {
39
46
  props.onEdit?.(props.listing.id);
@@ -41,7 +48,7 @@ function MyListingRow(props) {
41
48
  _jsx(GatedButton, { "data-analytics": "none", "data-analytics-reason": "passthrough \u2014 GatedButton owns the real click point", gate: actions.complete, label: t(LISTINGS_I18N_KEYS.mineComplete), testId: "listings-mine-complete", onClick: actions.doComplete }, "complete"),
42
49
  _jsx(GatedButton, { "data-analytics": "none", "data-analytics-reason": "passthrough \u2014 GatedButton owns the real click point", gate: actions.archive, label: t(LISTINGS_I18N_KEYS.mineArchive), testId: "listings-mine-archive", onClick: actions.doArchive }, "archive"),
43
50
  _jsx(GatedButton, { "data-analytics": "none", "data-analytics-reason": "passthrough \u2014 GatedButton owns the real click point", danger: true, gate: actions.remove, label: t(LISTINGS_I18N_KEYS.mineDelete), testId: "listings-mine-delete", onClick: actions.doRemove }, "delete"),
44
- ], children: _jsx(List.Item.Meta, { title: props.listing.title ?? String(props.listing.id), description: _jsxs(Flex, { vertical: true, gap: 4, children: [status !== undefined ? _jsx(ListingStatusBlock, { status: status }) : null, actions.error !== undefined && actions.error !== null ? (_jsx(ErrorAlert, { testId: "listings-mine-action-error", error: describe({
51
+ ], children: _jsx(List.Item.Meta, { title: _jsxs(Space, { size: 6, children: [heading ?? `#${String(props.listing.id)}`, showsDraft(props.listing) ? (_jsx(Typography.Text, { type: "secondary", "data-testid": "listings-mine-draft-title", children: t(LISTINGS_I18N_KEYS.statusDraft) })) : null] }), description: _jsxs(Flex, { vertical: true, gap: 4, children: [status !== undefined ? _jsx(ListingStatusBlock, { status: status }) : null, actions.error !== undefined && actions.error !== null ? (_jsx(ErrorAlert, { testId: "listings-mine-action-error", error: describe({
45
52
  code: LISTINGS_I18N_KEYS.unknownError,
46
53
  params: {},
47
54
  status: 0,
@@ -53,7 +60,16 @@ export function MyListingsPane(props) {
53
60
  const t = useT();
54
61
  const describe = useDescribeFlowError();
55
62
  const bag = useMyListings(props.source !== undefined ? { source: props.source } : {});
56
- return (_jsx(ListingsSkinTheme, { ...(props.mode !== undefined ? { mode: props.mode } : {}), children: _jsxs(Flex, { vertical: true, gap: 16, "data-testid": "listings-mine", children: [_jsx(Typography.Title, { level: 3, children: t(LISTINGS_I18N_KEYS.mineTitle) }), !bag.gate.available ? (_jsx(Alert, { type: "info", showIcon: true, "data-testid": "listings-mine-blocked", message: t(bag.gate.block.code, bag.gate.block.params) })) : null, _jsx(Tabs, { activeKey: bag.tab, "data-testid": "listings-mine-tabs", onChange: (key) => {
63
+ return (_jsx(ListingsSkinTheme, { ...(props.mode !== undefined ? { mode: props.mode } : {}), children: _jsxs(Flex, { vertical: true, gap: 16, "data-testid": "listings-mine", children: [_jsx(Typography.Title, { level: 3, children: t(LISTINGS_I18N_KEYS.mineTitle) }), !bag.gate.available ? (_jsx(Alert, { type: "info", showIcon: true, "data-testid": "listings-mine-blocked", message: t(bag.gate.block.code, bag.gate.block.params) })) : null, matchList(bag.blockedRows, {
64
+ loading: () => null,
65
+ failed: () => (_jsx(Typography.Text, { type: "secondary", "data-testid": "listings-mine-takedowns-failed", children: t(LISTINGS_I18N_KEYS.mineBlockedLoadFailed) })),
66
+ empty: () => null,
67
+ ready: (rows) => (_jsx(Alert, { type: "error", showIcon: true, "data-testid": "listings-mine-takedowns", message: t(LISTINGS_I18N_KEYS.mineBlockedTitle, {
68
+ count: rows.length,
69
+ }), description: _jsx(List, { dataSource: [...rows], rowKey: (row) => row.id, renderItem: (row) => (_jsx(MyListingRow, { listing: row, ...(props.onEdit !== undefined
70
+ ? { onEdit: props.onEdit }
71
+ : {}) })) }) })),
72
+ }), _jsx(Tabs, { activeKey: bag.tab, "data-testid": "listings-mine-tabs", onChange: (key) => {
57
73
  bag.setTab(key);
58
74
  }, items: bag.tabs.map((tab) => ({
59
75
  key: tab,
@@ -77,8 +93,8 @@ export function MyListingsPane(props) {
77
93
  message: undefined,
78
94
  language: undefined,
79
95
  }), action: _jsx(Button, { size: "small", "data-analytics": "none", "data-analytics-reason": "retrying a read the person already asked for; not a business action", onClick: bag.refetch, children: t(LISTINGS_I18N_KEYS.mineRetry) }) })),
80
- empty: () => (_jsx(Empty, { "data-testid": "listings-mine-empty", description: t(LISTINGS_I18N_KEYS.mineEmpty) })),
96
+ empty: () => (_jsx(Empty, { "data-testid": "listings-mine-empty", "data-empty-tab": bag.tab, description: t(TAB_EMPTY[bag.tab]) })),
81
97
  ready: (rows) => (_jsx(List, { dataSource: [...rows], rowKey: (row) => row.id, renderItem: (row) => (_jsx(MyListingRow, { listing: row, ...(props.onEdit !== undefined ? { onEdit: props.onEdit } : {}) })) })),
82
- }), props.source === undefined ? (_jsx(Alert, { type: "warning", showIcon: true, "data-testid": "listings-mine-source-missing", message: t(LISTINGS_I18N_KEYS.mineSourceMissing) })) : null, _jsxs(Space, { children: [_jsx(Button, { size: "small", disabled: !bag.prevPage.available, "data-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(Button, { size: "small", disabled: !bag.nextPage.available, "data-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) })] })] }) }));
98
+ }), _jsxs(Space, { children: [_jsx(Button, { size: "small", disabled: !bag.prevPage.available, "data-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(Button, { size: "small", disabled: !bag.nextPage.available, "data-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) })] })] }) }));
83
99
  }
84
100
  //# sourceMappingURL=MyListingsPane.js.map
@@ -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,17 +1,24 @@
1
1
  import type { ReactElement, ReactNode } from "react";
2
2
  import type { ActionAvailability, LoadState } from "@stapel/core";
3
- import type { ListingCard, ListingPageParams, MyCounters } from "../api/types.js";
3
+ import type { MyListingCard, MyListingsParams, MyCounters } from "../api/types.js";
4
4
  import type { MyListingsSource } from "../model/mineSource.js";
5
5
  import type { MyListingsTab } from "../model/status.js";
6
6
  /**
7
- * The owner's dashboard — and the one screen in this pair whose rows the
8
- * backend cannot supply.
7
+ * The owner's dashboard.
9
8
  *
10
- * The counters are REAL and are shown. The rows come from an injected
11
- * `MyListingsSource`, and when there is none `rows` lands in the `failed` arm
12
- * carrying a NAMED reason rather than as an empty list. `model/mineSource.ts`
13
- * holds the whole argument and the upstream asks; this file is the bag over
14
- * it.
9
+ * Three counts and the rows behind them, both owner-scoped reads of
10
+ * stapel-listings: `my/counters` and since 0.7.0 `my/listings`. Until
11
+ * that release the rows had no route at all and this hook failed them with a
12
+ * named reason rather than rendering an empty grid; `model/mineSource.ts`
13
+ * keeps the argument and the seam that came out of it.
14
+ *
15
+ * TWO reads, not one, and the second one is the point of this file's shape:
16
+ * the three tabs are the SERVER's status groupings, and `blocked` — a
17
+ * moderation takedown — is in none of them, because `my/counters` counts it
18
+ * in none of them. A dashboard that only ever asked for a tab's statuses
19
+ * would hide exactly the listing whose owner most needs to know. So
20
+ * `blockedRows` is fetched beside them, off the same route, narrowed to
21
+ * whatever `MY_LISTINGS_UNTABBED_STATUSES` derives.
15
22
  */
16
23
  export interface MyListingsBag {
17
24
  readonly tab: MyListingsTab;
@@ -19,10 +26,16 @@ export interface MyListingsBag {
19
26
  setTab(tab: MyListingsTab): void;
20
27
  /** The three real counts. */
21
28
  readonly counters: LoadState<MyCounters>;
22
- /** The rows for the current tab. `failed` with a named reason when no
23
- * source is wired — never an empty list. */
24
- readonly rows: LoadState<readonly ListingCard[]>;
25
- readonly page: ListingPageParams;
29
+ /** The rows for the current tab. */
30
+ readonly rows: LoadState<readonly MyListingCard[]>;
31
+ /**
32
+ * The rows no tab folds in — a moderation takedown, today. Empty for
33
+ * almost every seller; when it is not, it is the most important thing on
34
+ * the screen. Never `failed` in a way that hides the tabs: this read is
35
+ * independent of `rows` and a skin renders it beside them.
36
+ */
37
+ readonly blockedRows: LoadState<readonly MyListingCard[]>;
38
+ readonly page: MyListingsParams;
26
39
  readonly nextPage: ActionAvailability;
27
40
  readonly prevPage: ActionAvailability;
28
41
  goNext(): void;
@@ -32,6 +45,8 @@ export interface MyListingsBag {
32
45
  refetch(): void;
33
46
  }
34
47
  export interface UseMyListingsOptions {
48
+ /** Replace the contract's own `my/listings` read — a deployment that keeps
49
+ * its sellers' rows somewhere else. Absent: {@link defaultMyListingsSource}. */
35
50
  readonly source?: MyListingsSource;
36
51
  readonly initialTab?: MyListingsTab;
37
52
  readonly limit?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"MyListings.d.ts","sourceRoot":"","sources":["../../src/headless/MyListings.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,UAAU,EACX,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAIxD;;;;;;;;;GASG;AAEH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,aAAa,EAAE,CAAC;IACxC,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAAC;IACjC,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IACzC;gDAC4C;IAC5C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,WAAW,EAAE,CAAC,CAAC;IACjD,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,MAAM,IAAI,IAAI,CAAC;IACf,MAAM,IAAI,IAAI,CAAC;IACf,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,aAAa,CAC3B,OAAO,GAAE,oBAAyB,GACjC,aAAa,CAyEf;AAED,oDAAoD;AACpD,wBAAgB,UAAU,CACxB,KAAK,EAAE,oBAAoB,GAAG;IAC5B,QAAQ,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,SAAS,CAAC;CAC7C,GACA,YAAY,CAGd"}
1
+ {"version":3,"file":"MyListings.d.ts","sourceRoot":"","sources":["../../src/headless/MyListings.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,UAAU,EACX,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAIxD;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,aAAa,EAAE,CAAC;IACxC,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAAC;IACjC,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IACzC,oCAAoC;IACpC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,aAAa,EAAE,CAAC,CAAC;IACnD;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,aAAa,EAAE,CAAC,CAAC;IAC1D,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,MAAM,IAAI,IAAI,CAAC;IACf,MAAM,IAAI,IAAI,CAAC;IACf,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC;oFACgF;IAChF,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,aAAa,CAC3B,OAAO,GAAE,oBAAyB,GACjC,aAAa,CAiGf;AAED,oDAAoD;AACpD,wBAAgB,UAAU,CACxB,KAAK,EAAE,oBAAoB,GAAG;IAC5B,QAAQ,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,SAAS,CAAC;CAC7C,GACA,YAAY,CAGd"}
@@ -2,10 +2,11 @@ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useMemo, useState } from "react";
3
3
  import { useQuery } from "@tanstack/react-query";
4
4
  import { actionAvailable, actionBlocked, loadFailed, loadLoading, loadReady, useActiveSessionReady, } from "@stapel/core";
5
- import { MY_LISTINGS_SOURCE_MISSING } from "../model/mineSource.js";
5
+ import { defaultMyListingsSource } from "../model/mineSource.js";
6
+ import { useListingsApi } from "../model/context.js";
6
7
  import { useMyCounters } from "../model/queries.js";
7
8
  import { listingsQueryKeys, pageKey } from "../model/queryKeys.js";
8
- import { MY_LISTINGS_TABS } from "../model/status.js";
9
+ import { MY_LISTINGS_TABS, MY_LISTINGS_UNTABBED_STATUSES } from "../model/status.js";
9
10
  import { LISTINGS_I18N_KEYS } from "../i18n/keys.js";
10
11
  import { useMandateGate } from "./useMandateGate.js";
11
12
  export function useMyListings(options = {}) {
@@ -14,22 +15,41 @@ export function useMyListings(options = {}) {
14
15
  const [tab, setTabState] = useState(options.initialTab ?? "active");
15
16
  const [page, setPage] = useState(options.limit !== undefined ? { limit: options.limit } : {});
16
17
  const counters = useMyCounters();
17
- const { source } = options;
18
+ const api = useListingsApi();
19
+ const injected = options.source;
20
+ const source = useMemo(() => injected ?? defaultMyListingsSource(api), [injected, api]);
21
+ const ready = sessionReady && gate.available;
18
22
  const rowsQuery = useQuery({
19
23
  queryKey: listingsQueryKeys.mine(tab, pageKey(page)),
20
24
  queryFn: ({ signal }) => source({ tab, page, signal }),
21
- enabled: source !== undefined && sessionReady && gate.available,
25
+ enabled: ready,
26
+ retry: false,
27
+ });
28
+ // The takedowns, off the same route and deliberately NOT paged: a seller
29
+ // with a page of blocked listings has a problem no "next" button improves,
30
+ // and this sits above a dashboard rather than being one.
31
+ const blockedQuery = useQuery({
32
+ queryKey: listingsQueryKeys.mineUntabbed(),
33
+ queryFn: ({ signal }) => api.myListings({ status: MY_LISTINGS_UNTABBED_STATUSES }, { signal }),
34
+ enabled: ready && MY_LISTINGS_UNTABBED_STATUSES.length > 0,
22
35
  retry: false,
23
36
  });
24
37
  const rows = useMemo(() => {
25
- if (source === undefined)
26
- return loadFailed(MY_LISTINGS_SOURCE_MISSING);
27
38
  if (rowsQuery.status === "error")
28
39
  return loadFailed(rowsQuery.error);
29
40
  if (rowsQuery.data !== undefined)
30
41
  return loadReady(rowsQuery.data.items);
31
42
  return loadLoading();
32
- }, [source, rowsQuery.status, rowsQuery.error, rowsQuery.data]);
43
+ }, [rowsQuery.status, rowsQuery.error, rowsQuery.data]);
44
+ const blockedRows = useMemo(() => {
45
+ if (MY_LISTINGS_UNTABBED_STATUSES.length === 0)
46
+ return loadReady([]);
47
+ if (blockedQuery.status === "error")
48
+ return loadFailed(blockedQuery.error);
49
+ if (blockedQuery.data !== undefined)
50
+ return loadReady(blockedQuery.data.items);
51
+ return loadLoading();
52
+ }, [blockedQuery.status, blockedQuery.error, blockedQuery.data]);
33
53
  const envelope = rowsQuery.data;
34
54
  return {
35
55
  tab,
@@ -48,6 +68,7 @@ export function useMyListings(options = {}) {
48
68
  ? loadReady(counters.data)
49
69
  : loadLoading(),
50
70
  rows,
71
+ blockedRows,
51
72
  page,
52
73
  nextPage: envelope?.has_next === true && envelope.next_anchor != null
53
74
  ? actionAvailable()
@@ -71,6 +92,7 @@ export function useMyListings(options = {}) {
71
92
  refetch: () => {
72
93
  void counters.refetch();
73
94
  void rowsQuery.refetch();
95
+ void blockedQuery.refetch();
74
96
  },
75
97
  };
76
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MyListings.js","sourceRoot":"","sources":["../../src/headless/MyListings.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MyListings.js","sourceRoot":"","sources":["../../src/headless/MyListings.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;AAG/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,EAAE,cA6KlC,CAAC;AAEF,2DAA2D;AAC3D,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAE7D"}
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;AAG/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,EAAE,cAoLlC,CAAC;AAEF,2DAA2D;AAC3D,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAE7D"}
package/dist/i18n/es.js CHANGED
@@ -17,10 +17,11 @@ export { listingsErrorBundleEs } from "./generated/errors.es.gen.js";
17
17
  */
18
18
  export const listingsI18nBundleEs = {
19
19
  ...listingsErrorBundleEs,
20
- // ── the 9 stapel_listings-owned codes, pair-authored ─────────────────────
20
+ // ── the 10 stapel_listings-owned codes, pair-authored ────────────────────
21
21
  "error.400.category_required": "Hay que elegir una categoría",
22
22
  "error.400.image_required": "Para publicar el anuncio hace falta al menos una foto",
23
23
  "error.400.listing_feature_not_allowed": "El detalle «{feature}» no pertenece a esta categoría",
24
+ "error.400.listing_invalid_status_filter": "Estado de anuncio desconocido: «{status}»",
24
25
  "error.400.publish_validation_failed": "El anuncio no pasó la revisión y no se publicó",
25
26
  "error.403.listing_not_owner": "Este anuncio no es tuyo",
26
27
  "error.404.listing_not_found": "No se encontró el anuncio",
@@ -117,7 +118,11 @@ export const listingsI18nBundleEs = {
117
118
  "listings.mine.empty": "Aquí todavía no hay nada",
118
119
  "listings.mine.retry": "Reintentar",
119
120
  "listings.mine.counters_failed": "No pudimos contar tus anuncios",
120
- "listings.mine.source_missing": "Esta aplicación todavía no puede enumerar tus anuncios: el servicio de anuncios no tiene una lista limitada al propietario. Los contadores de abajo sí son reales.",
121
+ "listings.mine.empty.active": "No tienes nada publicado ni en revisión",
122
+ "listings.mine.empty.drafts": "Sin borradores: lo que empieces aparecerá aquí",
123
+ "listings.mine.empty.archived": "Nada archivado, pausado, caducado ni vendido todavía",
124
+ "listings.mine.blocked.title": "Moderación retiró {count} de tus anuncios",
125
+ "listings.mine.blocked.load_failed": "No pudimos comprobar si alguno de tus anuncios fue retirado",
121
126
  "listings.mine.live_under_review": "Publicado, cambios en revisión",
122
127
  "listings.mine.edit": "Editar",
123
128
  "listings.mine.archive": "Archivar",
@@ -1 +1 @@
1
- {"version":3,"file":"es.js","sourceRoot":"","sources":["../../src/i18n/es.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"es.js","sourceRoot":"","sources":["../../src/i18n/es.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { ListingsErrorCode } from "./errors.gen.js";
2
2
  /**
3
3
  * `es` texts for the backend error codes this catalog carries.
4
4
  *
5
- * PARTIAL, and deliberately typed to say so: 21 key(s) owned by
5
+ * PARTIAL, and deliberately typed to say so: 22 key(s) owned by
6
6
  * stapel_attributes, stapel_listings are absent, because that owner ships no locale catalog
7
7
  * (ERRORS_LOCALE_EXEMPT_OWNERS). English for them still comes from the registry
8
8
  * artifact via the en bundle; the pair layers its own authored `es`
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * `es` texts for the backend error codes this catalog carries.
3
3
  *
4
- * PARTIAL, and deliberately typed to say so: 21 key(s) owned by
4
+ * PARTIAL, and deliberately typed to say so: 22 key(s) owned by
5
5
  * stapel_attributes, stapel_listings are absent, because that owner ships no locale catalog
6
6
  * (ERRORS_LOCALE_EXEMPT_OWNERS). English for them still comes from the registry
7
7
  * artifact via the en bundle; the pair layers its own authored `es`
@@ -208,6 +208,12 @@ export declare const LISTINGS_ERRORS: {
208
208
  readonly remediation: "fix_input";
209
209
  readonly en: "Feature '{feature}' is not allowed for this category";
210
210
  };
211
+ readonly "error.400.listing_invalid_status_filter": {
212
+ readonly status: 400;
213
+ readonly params: readonly ["status"];
214
+ readonly remediation: "fix_input";
215
+ readonly en: "Unknown listing status '{status}'";
216
+ };
211
217
  readonly "error.400.publish_validation_failed": {
212
218
  readonly status: 400;
213
219
  readonly params: readonly [];
@@ -1 +1 @@
1
- {"version":3,"file":"errors.gen.d.ts","sourceRoot":"","sources":["../../../src/i18n/generated/errors.gen.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,gBAAgB,GAChB,gBAAgB,GAChB,QAAQ,GACR,WAAW,GACX,iBAAiB,GACjB,KAAK,CAAC;AAEV,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,0EAA0E;IAC1E,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgElB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,eAAe,CAAC;AAE7D,gEAAgE;AAChE,eAAO,MAAM,oBAAoB,EAAE,SAAS,iBAAiB,EAgE5D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAgEnE,CAAC"}
1
+ {"version":3,"file":"errors.gen.d.ts","sourceRoot":"","sources":["../../../src/i18n/generated/errors.gen.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,gBAAgB,GAChB,gBAAgB,GAChB,QAAQ,GACR,WAAW,GACX,iBAAiB,GACjB,KAAK,CAAC;AAEV,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,0EAA0E;IAC1E,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiElB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,eAAe,CAAC;AAE7D,gEAAgE;AAChE,eAAO,MAAM,oBAAoB,EAAE,SAAS,iBAAiB,EAiE5D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAiEnE,CAAC"}
@@ -38,6 +38,7 @@ export const LISTINGS_ERRORS = {
38
38
  "error.400.image_required": { status: 400, params: [], remediation: "fix_input", en: "At least one image is required to publish" },
39
39
  "error.400.invalid_ad_id": { status: 400, params: [], remediation: "fix_input", en: "Invalid advertisement ID" },
40
40
  "error.400.listing_feature_not_allowed": { status: 400, params: ["feature"], remediation: "fix_input", en: "Feature '{feature}' is not allowed for this category" },
41
+ "error.400.listing_invalid_status_filter": { status: 400, params: ["status"], remediation: "fix_input", en: "Unknown listing status '{status}'" },
41
42
  "error.400.publish_validation_failed": { status: 400, params: [], remediation: "fix_input", en: "Listing validation failed" },
42
43
  "error.400.validation_error": { status: 400, params: [], remediation: "fix_input", en: "Validation error" },
43
44
  "error.400.verification_failed": { status: 400, params: [], remediation: "verify", en: "Verification failed" },
@@ -104,6 +105,7 @@ export const LISTINGS_ERROR_CODES = [
104
105
  "error.400.image_required",
105
106
  "error.400.invalid_ad_id",
106
107
  "error.400.listing_feature_not_allowed",
108
+ "error.400.listing_invalid_status_filter",
107
109
  "error.400.publish_validation_failed",
108
110
  "error.400.validation_error",
109
111
  "error.400.verification_failed",
@@ -174,6 +176,7 @@ export const listingsErrorBundleEn = {
174
176
  "error.400.image_required": "At least one image is required to publish",
175
177
  "error.400.invalid_ad_id": "Invalid advertisement ID",
176
178
  "error.400.listing_feature_not_allowed": "Feature '{feature}' is not allowed for this category",
179
+ "error.400.listing_invalid_status_filter": "Unknown listing status '{status}'",
177
180
  "error.400.publish_validation_failed": "Listing validation failed",
178
181
  "error.400.validation_error": "Validation error",
179
182
  "error.400.verification_failed": "Verification failed",