@stapel/listings-react 0.4.0 → 0.7.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.
- package/CHANGELOG.md +102 -0
- package/dist/api/generated/schema.d.ts +2 -2
- package/dist/api/generated/schema.d.ts.map +1 -1
- package/dist/default/FavoritesPane.d.ts +40 -3
- package/dist/default/FavoritesPane.d.ts.map +1 -1
- package/dist/default/FavoritesPane.js +30 -18
- package/dist/default/FavoritesPane.js.map +1 -1
- package/dist/default/ListingCard.d.ts +25 -4
- package/dist/default/ListingCard.d.ts.map +1 -1
- package/dist/default/ListingCard.js +19 -12
- package/dist/default/ListingCard.js.map +1 -1
- package/dist/default/ListingComposerPage.d.ts +163 -23
- package/dist/default/ListingComposerPage.d.ts.map +1 -1
- package/dist/default/ListingComposerPage.js +85 -43
- package/dist/default/ListingComposerPage.js.map +1 -1
- package/dist/default/ListingDetailPane.d.ts +41 -4
- package/dist/default/ListingDetailPane.d.ts.map +1 -1
- package/dist/default/ListingDetailPane.js +38 -25
- package/dist/default/ListingDetailPane.js.map +1 -1
- package/dist/default/ListingPhoto.d.ts +13 -1
- package/dist/default/ListingPhoto.d.ts.map +1 -1
- package/dist/default/ListingPhoto.js +47 -9
- package/dist/default/ListingPhoto.js.map +1 -1
- package/dist/default/ListingPrice.d.ts +13 -0
- package/dist/default/ListingPrice.d.ts.map +1 -0
- package/dist/default/ListingPrice.js +60 -0
- package/dist/default/ListingPrice.js.map +1 -0
- package/dist/default/MyListingsPane.d.ts +7 -28
- package/dist/default/MyListingsPane.d.ts.map +1 -1
- package/dist/default/MyListingsPane.js +136 -67
- package/dist/default/MyListingsPane.js.map +1 -1
- package/dist/default/SignInLink.js +8 -7
- package/dist/default/SignInLink.js.map +1 -1
- package/dist/default/StatusTags.d.ts +16 -5
- package/dist/default/StatusTags.d.ts.map +1 -1
- package/dist/default/StatusTags.js +19 -13
- package/dist/default/StatusTags.js.map +1 -1
- package/dist/default/index.d.ts +15 -9
- package/dist/default/index.d.ts.map +1 -1
- package/dist/default/index.js +13 -6
- package/dist/default/index.js.map +1 -1
- package/dist/headless/Favorites.d.ts +6 -0
- package/dist/headless/Favorites.d.ts.map +1 -1
- package/dist/headless/Favorites.js +4 -0
- package/dist/headless/Favorites.js.map +1 -1
- package/dist/headless/ListingActions.d.ts +12 -0
- package/dist/headless/ListingActions.d.ts.map +1 -1
- package/dist/headless/ListingActions.js +3 -0
- package/dist/headless/ListingActions.js.map +1 -1
- package/dist/headless/ListingComposer.d.ts +23 -0
- package/dist/headless/ListingComposer.d.ts.map +1 -1
- package/dist/headless/ListingComposer.js +33 -7
- package/dist/headless/ListingComposer.js.map +1 -1
- package/dist/i18n/es.d.ts +6 -1
- package/dist/i18n/es.d.ts.map +1 -1
- package/dist/i18n/es.js +21 -4
- package/dist/i18n/es.js.map +1 -1
- package/dist/i18n/keys.d.ts +19 -2
- package/dist/i18n/keys.d.ts.map +1 -1
- package/dist/i18n/keys.js +35 -5
- package/dist/i18n/keys.js.map +1 -1
- package/dist/i18n/ru.d.ts +16 -1
- package/dist/i18n/ru.d.ts.map +1 -1
- package/dist/i18n/ru.js +33 -4
- package/dist/i18n/ru.js.map +1 -1
- package/dist/model/draft.d.ts +9 -6
- package/dist/model/draft.d.ts.map +1 -1
- package/dist/model/draft.js +3 -1
- package/dist/model/draft.js.map +1 -1
- package/dist/model/features.d.ts +21 -7
- package/dist/model/features.d.ts.map +1 -1
- package/dist/model/features.js +26 -0
- package/dist/model/features.js.map +1 -1
- package/llms.txt +7 -6
- package/manifest.json +53 -11
- package/nav-manifest.json +1 -1
- package/package.json +17 -12
- package/src/analytics/generated/events.json +1 -1
- package/src/api/generated/schema.ts +2 -2
- package/src/default/FavoritesPane.tsx +156 -82
- package/src/default/ListingCard.tsx +88 -46
- package/src/default/ListingComposerPage.tsx +403 -187
- package/src/default/ListingDetailPane.tsx +200 -98
- package/src/default/ListingPhoto.tsx +89 -16
- package/src/default/ListingPrice.tsx +77 -0
- package/src/default/MyListingsPane.tsx +286 -228
- package/src/default/SignInLink.tsx +4 -4
- package/src/default/StatusTags.tsx +36 -18
- package/src/default/index.ts +18 -7
- package/src/headless/Favorites.tsx +10 -0
- package/src/headless/ListingActions.tsx +19 -0
- package/src/headless/ListingComposer.tsx +56 -5
- package/src/i18n/es.ts +26 -4
- package/src/i18n/keys.ts +42 -5
- package/src/i18n/ru.ts +38 -4
- package/src/model/draft.ts +12 -7
- package/src/model/features.ts +48 -7
- package/dist/default/ErrorAlert.d.ts +0 -9
- package/dist/default/ErrorAlert.d.ts.map +0 -1
- package/dist/default/ErrorAlert.js +0 -27
- package/dist/default/ErrorAlert.js.map +0 -1
- package/dist/default/theme.d.ts +0 -25
- package/dist/default/theme.d.ts.map +0 -1
- package/dist/default/theme.js +0 -40
- package/dist/default/theme.js.map +0 -1
- package/src/default/ErrorAlert.tsx +0 -46
- package/src/default/theme.tsx +0 -67
package/dist/i18n/keys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/i18n/keys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,YAAY,EAAE,wBAAwB;IAEtC,4EAA4E;IAC5E,WAAW,EAAE,uBAAuB;IACpC,aAAa,EAAE,yBAAyB;IACxC,eAAe,EAAE,2BAA2B;IAC5C,YAAY,EAAE,wBAAwB;IACtC,aAAa,EAAE,yBAAyB;IACxC,UAAU,EAAE,sBAAsB;IAClC,cAAc,EAAE,0BAA0B;IAC1C,aAAa,EAAE,yBAAyB;IACxC,cAAc,EAAE,0BAA0B;IAE1C,4EAA4E;IAC5E,+CAA+C;IAC/C,qBAAqB,EAAE,kCAAkC;IACzD,qEAAqE;IACrE,yBAAyB,EAAE,uCAAuC;IAClE,yEAAyE;IACzE,wBAAwB,EAAE,qCAAqC;IAC/D,qBAAqB,EAAE,kCAAkC;IACzD,yBAAyB,EAAE,uCAAuC;IAClE,kBAAkB,EAAE,8BAA8B;IAClD,oEAAoE;IACpE,2BAA2B,EAAE,yCAAyC;IAEtE,4EAA4E;IAC5E,WAAW,EAAE,wBAAwB;IACrC,oBAAoB,EAAE,iCAAiC;IACvD,eAAe,EAAE,4BAA4B;IAC7C,eAAe,EAAE,4BAA4B;IAC7C,kBAAkB,EAAE,+BAA+B;IACnD,QAAQ,EAAE,oBAAoB;IAC9B,yEAAyE;IACzE,UAAU,EAAE,uBAAuB;IAEnC,4EAA4E;IAC5E,aAAa,EAAE,yBAAyB;IACxC,gBAAgB,EAAE,6BAA6B;IAC/C,WAAW,EAAE,uBAAuB;IACpC,cAAc,EAAE,2BAA2B;IAC3C,oEAAoE;IACpE,aAAa,EAAE,yBAAyB;IACxC,8EAA8E;IAC9E,kBAAkB,EAAE,+BAA+B;IACnD,mBAAmB,EAAE,iCAAiC;IACtD,iBAAiB,EAAE,6BAA6B;IAChD,WAAW,EAAE,uBAAuB;IACpC,aAAa,EAAE,0BAA0B;IACzC,wBAAwB,EAAE,qCAAqC;IAC/D,uBAAuB,EAAE,oCAAoC;IAC7D,cAAc,EAAE,2BAA2B;IAC3C,iBAAiB,EAAE,8BAA8B;IACjD,eAAe,EAAE,4BAA4B;IAC7C;;oDAEgD;IAChD,WAAW,EAAE,uBAAuB;
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/i18n/keys.ts"],"names":[],"mappings":"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"}
|
package/dist/i18n/ru.d.ts
CHANGED
|
@@ -32,6 +32,21 @@ export { listingsErrorBundleRu } from "./generated/errors.ru.gen.js";
|
|
|
32
32
|
* are the same grade. Neither is a claim of review.
|
|
33
33
|
*/
|
|
34
34
|
export declare const listingsI18nBundleRu: I18nDictionary;
|
|
35
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* Register the Russian bundle into a core i18n engine — AND the twelve
|
|
37
|
+
* `stapel_attributes` sentences this pair deliberately does not author.
|
|
38
|
+
*
|
|
39
|
+
* The split of ownership is right and stays: two packages must not give one
|
|
40
|
+
* refusal two sentences. What was wrong was leaving the JOIN to a README. A
|
|
41
|
+
* host that registered only this bundle got twelve of the composer's most
|
|
42
|
+
* common refusals ("this value is below the minimum", "the description is too
|
|
43
|
+
* long") in English on a Russian page, and nothing failed anywhere to say so.
|
|
44
|
+
*
|
|
45
|
+
* `@stapel/attributes-react` is a peer of this pair and its editors are what
|
|
46
|
+
* RAISE those twelve, so a listings-ru host is an attributes-ru host by
|
|
47
|
+
* construction; chaining the registration states that instead of asking. It is
|
|
48
|
+
* idempotent — a host that also registers the bundle itself simply writes the
|
|
49
|
+
* same keys twice.
|
|
50
|
+
*/
|
|
36
51
|
export declare function registerListingsI18nRu(i18n: I18nEngine): void;
|
|
37
52
|
//# sourceMappingURL=ru.d.ts.map
|
package/dist/i18n/ru.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ru.d.ts","sourceRoot":"","sources":["../../src/i18n/ru.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ru.d.ts","sourceRoot":"","sources":["../../src/i18n/ru.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,oBAAoB,EAAE,cAsMlC,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAG7D"}
|
package/dist/i18n/ru.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { registerAttributesI18nRu } from "@stapel/attributes-react/i18n/ru";
|
|
1
2
|
import { listingsErrorBundleRu } from "./generated/errors.ru.gen.js";
|
|
2
3
|
export { listingsErrorBundleRu } from "./generated/errors.ru.gen.js";
|
|
3
4
|
/**
|
|
@@ -84,6 +85,8 @@ export const listingsI18nBundleRu = {
|
|
|
84
85
|
"listings.detail.published_at": "Опубликовано {date}",
|
|
85
86
|
"listings.detail.expires_at": "В продаже до {date}",
|
|
86
87
|
"listings.detail.stock": "В наличии",
|
|
88
|
+
"listings.detail.edit": "Редактировать объявление",
|
|
89
|
+
"listings.detail.take_down": "Снять с публикации",
|
|
87
90
|
"listings.compose.new_title": "Новое объявление",
|
|
88
91
|
"listings.compose.edit_title": "Редактирование объявления",
|
|
89
92
|
"listings.compose.category": "Категория",
|
|
@@ -97,8 +100,7 @@ export const listingsI18nBundleRu = {
|
|
|
97
100
|
"listings.compose.price_invalid": "Введите цену числом, не более двух знаков после запятой",
|
|
98
101
|
"listings.compose.currency_label": "Валюта",
|
|
99
102
|
"listings.compose.location_label": "Где находится",
|
|
100
|
-
"listings.compose.
|
|
101
|
-
"listings.compose.lon_label": "Долгота",
|
|
103
|
+
"listings.compose.location_help": "Покупатели ищут по расстоянию — объявление без места они просто не найдут",
|
|
102
104
|
"listings.compose.geo_incomplete": "Рядом с широтой нужна долгота — половина координаты никуда не указывает",
|
|
103
105
|
"listings.compose.photos": "Фотографии",
|
|
104
106
|
"listings.compose.too_many_images": "К объявлению можно приложить не больше {max} фото",
|
|
@@ -119,10 +121,11 @@ export const listingsI18nBundleRu = {
|
|
|
119
121
|
"listings.compose.published_live": "Правки отправлены. Объявление остаётся опубликованным, пока мы их проверяем.",
|
|
120
122
|
"listings.compose.invalid_summary": "Прежде чем отправить, поправьте характеристик: {count}",
|
|
121
123
|
"listings.compose.blocked.no_category": "Выберите категорию — от неё зависит остальная форма",
|
|
122
|
-
"listings.compose.blocked.unsupported_type": "Эта категория спрашивает характеристику, которую приложение пока не умеет
|
|
124
|
+
"listings.compose.blocked.unsupported_type": "Эта категория спрашивает характеристику, которую приложение пока не умеет показывать, поэтому закончить объявление здесь нельзя",
|
|
123
125
|
"listings.compose.blocked.photos_pending": "Дождитесь окончания загрузки фотографий",
|
|
124
126
|
"listings.compose.blocked.no_draft": "Черновик ещё не создан",
|
|
125
127
|
"listings.compose.blocked.busy": "Секунду — предыдущее изменение ещё сохраняется",
|
|
128
|
+
"listings.compose.blocked.incomplete": "Не заполнено обязательных деталей: {count}",
|
|
126
129
|
"listings.compose.blocked.mirror": "Сначала поправьте отмеченные поля",
|
|
127
130
|
"listings.compose.blocked.details_unavailable": "Не удалось загрузить характеристики категории, поэтому проверить форму нельзя",
|
|
128
131
|
"listings.mine.title": "Мои объявления",
|
|
@@ -138,31 +141,57 @@ export const listingsI18nBundleRu = {
|
|
|
138
141
|
"listings.mine.empty.drafts": "Черновиков нет — всё начатое появится здесь",
|
|
139
142
|
"listings.mine.empty.archived": "Пока ничего не в архиве, не снято, не истекло и не продано",
|
|
140
143
|
"listings.mine.blocked.title": "Модерация сняла ваших объявлений: {count}",
|
|
144
|
+
"listings.mine.blocked.title.one": "Модерация сняла одно ваше объявление",
|
|
145
|
+
"listings.mine.blocked.title.few": "Модерация сняла {count} ваших объявления",
|
|
146
|
+
"listings.mine.blocked.title.many": "Модерация сняла {count} ваших объявлений",
|
|
147
|
+
"listings.mine.blocked.title.other": "Модерация сняла ваших объявлений: {count}",
|
|
141
148
|
"listings.mine.blocked.load_failed": "Не удалось проверить, снимала ли модерация ваши объявления",
|
|
142
149
|
"listings.mine.live_under_review": "Опубликовано, правки на проверке",
|
|
143
150
|
"listings.mine.edit": "Редактировать",
|
|
144
151
|
"listings.mine.archive": "В архив",
|
|
145
152
|
"listings.mine.complete": "Отметить проданным",
|
|
146
153
|
"listings.mine.delete": "Удалить",
|
|
154
|
+
"listings.mine.delete_confirm_title": "Удалить объявление?",
|
|
155
|
+
"listings.mine.delete_confirm_body": "Оно исчезнет из кабинета, и вернуть его будет нельзя. Архив сохраняет его.",
|
|
147
156
|
"listings.favorites.title": "Избранное",
|
|
148
157
|
"listings.favorites.loading": "Загружаем избранное…",
|
|
149
158
|
"listings.favorites.load_failed": "Не удалось загрузить избранное",
|
|
150
159
|
"listings.favorites.empty": "Вы ещё ничего не сохранили",
|
|
160
|
+
"listings.favorites.empty_hint": "Нажмите на сердечко в любом объявлении — оно будет ждать здесь.",
|
|
161
|
+
"listings.favorites.sign_in_hint": "Избранное хранится в аккаунте, поэтому переходит с вами на другие устройства.",
|
|
151
162
|
"listings.blocked.sign_in": "Войдите, чтобы сделать это",
|
|
152
163
|
"listings.blocked.guest": "Этот аккаунт пока так не может — сначала завершите настройку",
|
|
153
164
|
"listings.blocked.mandate_unknown": "Не удалось проверить ваш аккаунт, поэтому мы не угадываем, можно ли вам это",
|
|
154
165
|
"listings.blocked.transition": "Объявление в статусе «{from_status}» так перевести нельзя",
|
|
155
166
|
"listings.blocked.delete_active": "Сначала уберите в архив — объявление в продаже удалить нельзя",
|
|
156
167
|
"listings.blocked.in_flight": "Секунду — это уже выполняется",
|
|
168
|
+
"listings.blocked.no_editor": "В этом приложении пока нет экрана редактирования объявления",
|
|
157
169
|
"listings.page.prev": "Назад",
|
|
158
170
|
"listings.page.next": "Дальше",
|
|
171
|
+
"listings.page.indicator": "Страница {page}",
|
|
159
172
|
"listings.nav.detail": "Объявление",
|
|
160
173
|
"listings.nav.compose": "Подать объявление",
|
|
161
174
|
"listings.nav.mine": "Мои объявления",
|
|
162
175
|
"listings.nav.favorites": "Избранное",
|
|
163
176
|
};
|
|
164
|
-
/**
|
|
177
|
+
/**
|
|
178
|
+
* Register the Russian bundle into a core i18n engine — AND the twelve
|
|
179
|
+
* `stapel_attributes` sentences this pair deliberately does not author.
|
|
180
|
+
*
|
|
181
|
+
* The split of ownership is right and stays: two packages must not give one
|
|
182
|
+
* refusal two sentences. What was wrong was leaving the JOIN to a README. A
|
|
183
|
+
* host that registered only this bundle got twelve of the composer's most
|
|
184
|
+
* common refusals ("this value is below the minimum", "the description is too
|
|
185
|
+
* long") in English on a Russian page, and nothing failed anywhere to say so.
|
|
186
|
+
*
|
|
187
|
+
* `@stapel/attributes-react` is a peer of this pair and its editors are what
|
|
188
|
+
* RAISE those twelve, so a listings-ru host is an attributes-ru host by
|
|
189
|
+
* construction; chaining the registration states that instead of asking. It is
|
|
190
|
+
* idempotent — a host that also registers the bundle itself simply writes the
|
|
191
|
+
* same keys twice.
|
|
192
|
+
*/
|
|
165
193
|
export function registerListingsI18nRu(i18n) {
|
|
194
|
+
registerAttributesI18nRu(i18n);
|
|
166
195
|
i18n.registerBundle("ru", listingsI18nBundleRu);
|
|
167
196
|
}
|
|
168
197
|
//# sourceMappingURL=ru.js.map
|
package/dist/i18n/ru.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ru.js","sourceRoot":"","sources":["../../src/i18n/ru.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAmB;IAClD,GAAG,qBAAqB;IAExB,4EAA4E;IAC5E,6BAA6B,EAAE,yBAAyB;IACxD,0BAA0B,EACxB,2DAA2D;IAC7D,uCAAuC,EACrC,0DAA0D;IAC5D,yCAAyC,EACvC,2CAA2C;IAC7C,qCAAqC,EACnC,iDAAiD;IACnD,6BAA6B,EAAE,wBAAwB;IACvD,6BAA6B,EAAE,uBAAuB;IACtD,6BAA6B,EAAE,4BAA4B;IAC3D,sCAAsC,EACpC,2DAA2D;IAC7D,wCAAwC,EACtC,mEAAmE;IAErE,wBAAwB,EAAE,wCAAwC;IAElE,uBAAuB,EAAE,UAAU;IACnC,yBAAyB,EAAE,aAAa;IACxC,2BAA2B,EAAE,cAAc;IAC3C,wBAAwB,EAAE,gBAAgB;IAC1C,yBAAyB,EAAE,YAAY;IACvC,sBAAsB,EAAE,SAAS;IACjC,0BAA0B,EAAE,WAAW;IACvC,yBAAyB,EAAE,mBAAmB;IAC9C,0BAA0B,EAAE,UAAU;IAEtC,kCAAkC,EAChC,mFAAmF;IACrF,uCAAuC,EACrC,mGAAmG;IACrG,qCAAqC,EACnC,0DAA0D;IAC5D,kCAAkC,EAChC,uCAAuC;IACzC,uCAAuC,EACrC,iDAAiD;IACnD,8BAA8B,EAC5B,6DAA6D;IAC/D,yCAAyC,EACvC,yEAAyE;IAE3E,wBAAwB,EAAE,UAAU;IACpC,iCAAiC,EAAE,iBAAiB;IACpD,4BAA4B,EAAE,iBAAiB;IAC/C,4BAA4B,EAAE,aAAa;IAC3C,+BAA+B,EAAE,sBAAsB;IACvD,oBAAoB,EAAE,SAAS;IAC/B,uBAAuB,EAAE,OAAO;IAEhC,yBAAyB,EAAE,uBAAuB;IAClD,6BAA6B,EAAE,iCAAiC;IAChE,uBAAuB,EAAE,WAAW;IACpC,2BAA2B,EAAE,gCAAgC;IAC7D,yBAAyB,EAAE,wBAAwB;IACnD,+BAA+B,EAC7B,8EAA8E;IAChF,iCAAiC,EAC/B,uDAAuD;IACzD,6BAA6B,EAAE,UAAU;IACzC,uBAAuB,EAAE,gBAAgB;IACzC,0BAA0B,EAAE,iDAAiD;IAC7E,qCAAqC,EACnC,gEAAgE;IAClE,oCAAoC,EAClC,4DAA4D;IAC9D,2BAA2B,EAAE,yBAAyB;IACtD,8BAA8B,EAAE,qBAAqB;IACrD,4BAA4B,EAAE,qBAAqB;IACnD,uBAAuB,EAAE,WAAW;
|
|
1
|
+
{"version":3,"file":"ru.js","sourceRoot":"","sources":["../../src/i18n/ru.ts"],"names":[],"mappings":"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"}
|
package/dist/model/draft.d.ts
CHANGED
|
@@ -22,12 +22,14 @@ import type { ListingDetail, ListingDraft, ListingDraftPatch } from "../api/type
|
|
|
22
22
|
* `geohash` that disagrees with the coordinates beside it is worse than no
|
|
23
23
|
* geohash — the pin and the bucket point at different places.
|
|
24
24
|
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
25
|
+
* `geohash` is SERVER-COMPUTED and read-only since stapel-listings 0.7.1.
|
|
26
|
+
* `Listing.save()` stamps `geohash_draft` from `lat_draft`/`lon_draft` through
|
|
27
|
+
* the `geo.geohash_encode` comm function, and `ListingDraftSerializer` marks
|
|
28
|
+
* the field `readOnly` — a value sent in the request body is silently ignored.
|
|
29
|
+
* So this member is something the composer READS BACK (a reopened draft, a
|
|
30
|
+
* published listing) and never something it sends: `draftPatchFromValues`
|
|
31
|
+
* omits it, and a picker that happens to know a geohash may keep it for its
|
|
32
|
+
* own display without expecting the wire to carry it.
|
|
31
33
|
*/
|
|
32
34
|
export interface ListingLocation {
|
|
33
35
|
/** Opaque id from whatever place directory the deployment uses. */
|
|
@@ -38,6 +40,7 @@ export interface ListingLocation {
|
|
|
38
40
|
* `55.796100` into `55.7961` and change what was submitted. */
|
|
39
41
|
readonly lat: string | null;
|
|
40
42
|
readonly lon: string | null;
|
|
43
|
+
/** Read-only: the server computes it from `lat`/`lon` (0.7.1). Never sent. */
|
|
41
44
|
readonly geohash: string;
|
|
42
45
|
}
|
|
43
46
|
export declare const EMPTY_LOCATION: ListingLocation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draft.d.ts","sourceRoot":"","sources":["../../src/model/draft.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAExE,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAGzB
|
|
1
|
+
{"version":3,"file":"draft.d.ts","sourceRoot":"","sources":["../../src/model/draft.ts"],"names":[],"mappings":"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"}
|
package/dist/model/draft.js
CHANGED
|
@@ -134,7 +134,9 @@ export function draftPatchFromValues(values, features) {
|
|
|
134
134
|
images_draft: [...values.images],
|
|
135
135
|
location_id_draft: values.location.locationId,
|
|
136
136
|
location_label_draft: values.location.locationLabel,
|
|
137
|
-
geohash_draft
|
|
137
|
+
// No `geohash_draft`: stapel-listings 0.7.1 computes it in `Listing.save()`
|
|
138
|
+
// from the coordinates and marks the serializer field read-only, so a value
|
|
139
|
+
// sent here is discarded. Sending one would be a claim the wire ignores.
|
|
138
140
|
lat_draft: values.location.lat,
|
|
139
141
|
lon_draft: values.location.lon,
|
|
140
142
|
features_draft: toWireFeatures(features, values.features),
|
package/dist/model/draft.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draft.js","sourceRoot":"","sources":["../../src/model/draft.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAM1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"draft.js","sourceRoot":"","sources":["../../src/model/draft.ts"],"names":[],"mappings":"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"}
|
package/dist/model/features.d.ts
CHANGED
|
@@ -22,14 +22,28 @@
|
|
|
22
22
|
* `order`, `title`, `badge`) are simply ignored by every formatter. Copying a
|
|
23
23
|
* hand-picked subset instead would be a list to keep in step with ten types.
|
|
24
24
|
*
|
|
25
|
-
* ── What a DAO does NOT carry
|
|
25
|
+
* ── What a DAO does NOT carry, and the one line that repairs it ────────────
|
|
26
26
|
*
|
|
27
|
-
* `select`'s `options`. `
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* `
|
|
27
|
+
* `select`'s `options`. `SelectType.dto_to_dao` stores the chosen VALUES and
|
|
28
|
+
* the ui config, never the option table — the table lives on the CATEGORY, and
|
|
29
|
+
* not needing it is the whole point of the projection.
|
|
30
|
+
*
|
|
31
|
+
* The consequence was a defect the visual pass caught on every card and every
|
|
32
|
+
* spec row: `formatFeatureValue` resolves an option's copy by looking the
|
|
33
|
+
* value up in `config.options`, and with no table it falls through to
|
|
34
|
+
* `String(value)`. The stored value of a translatable catalogue IS a
|
|
35
|
+
* translation key, so a listing page printed `demo.condition.used` and
|
|
36
|
+
* `demo.brand.bosch` at people. (The server does not have this problem: its
|
|
37
|
+
* own `format_value` has the category's config in hand.)
|
|
38
|
+
*
|
|
39
|
+
* So the split below synthesizes the IDENTITY table — `{value: v, label: v}`
|
|
40
|
+
* for each stored value — which is exactly the table a translatable catalogue
|
|
41
|
+
* would have produced, since its labels ARE the keys. `formatFeatureValue`
|
|
42
|
+
* then runs the value through the host's `t` and a bundle carrying the
|
|
43
|
+
* catalogue copy reads "Used". A bundle that does not still shows the key, on
|
|
44
|
+
* purpose: a visible `option.condition.used` gets fixed, an invented "Used"
|
|
45
|
+
* ships wrong. A NON-translatable catalogue stores literal labels, `t` returns
|
|
46
|
+
* an unknown key unchanged, and the output is what it always was.
|
|
33
47
|
*/
|
|
34
48
|
import type { FeatureValueDto } from "@stapel/attributes-react";
|
|
35
49
|
import type { ListingFeatureDao, ListingFeatureView } from "../api/types.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/model/features.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/model/features.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,OAAO,KAAK,EAAc,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AA8B7E;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,iBAAiB,GACrB,kBAAkB,GAAG,SAAS,CAuBhC;AAED;;;mCAGmC;AACnC,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,SAAS,iBAAiB,EAAE,GAAG,IAAI,GAAG,SAAS,GACpD,SAAS,kBAAkB,EAAE,CAO/B;AAED,qEAAqE;AACrE,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,SAAS,iBAAiB,EAAE,GAAG,IAAI,GAAG,SAAS,GACpD,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,SAAS,iBAAiB,EAAE,GAAG,IAAI,GAAG,SAAS,GACpD,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAM3C;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,iBAAiB,EAAE,CAE7E"}
|
package/dist/model/features.js
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
/** Keys that belong to the DAO envelope rather than to the type's config. */
|
|
2
2
|
const ENVELOPE = new Set(["slug", "value", "name", "order", "title", "badge"]);
|
|
3
|
+
/** The two types whose stored `value` is an option key rather than the thing
|
|
4
|
+
* itself. `hierarchical_select` is deliberately absent: its formatter joins
|
|
5
|
+
* the path with " / " and never consults an option table at all. */
|
|
6
|
+
const OPTION_VALUED = new Set(["select"]);
|
|
7
|
+
/**
|
|
8
|
+
* The identity option table for a stored `select` — see the module header.
|
|
9
|
+
*
|
|
10
|
+
* Returns `undefined` when there is nothing to add (another type, a config
|
|
11
|
+
* that already carries a table, a value that is not a list of strings), so the
|
|
12
|
+
* common path allocates nothing and a DAO that DOES carry options is left
|
|
13
|
+
* exactly as it arrived.
|
|
14
|
+
*/
|
|
15
|
+
function synthesizedOptions(dao, config) {
|
|
16
|
+
if (typeof dao.type !== "string" || !OPTION_VALUED.has(dao.type))
|
|
17
|
+
return undefined;
|
|
18
|
+
if (Array.isArray(config["options"]))
|
|
19
|
+
return undefined;
|
|
20
|
+
const raw = Array.isArray(dao.value) ? dao.value : [dao.value];
|
|
21
|
+
const values = raw.filter((item) => typeof item === "string");
|
|
22
|
+
if (values.length === 0)
|
|
23
|
+
return undefined;
|
|
24
|
+
return values.map((value) => ({ value, label: value }));
|
|
25
|
+
}
|
|
3
26
|
/**
|
|
4
27
|
* One DAO row → the definition/value pair the display half consumes.
|
|
5
28
|
*
|
|
@@ -16,6 +39,9 @@ export function featureFromDao(dao) {
|
|
|
16
39
|
if (!ENVELOPE.has(key))
|
|
17
40
|
config[key] = value;
|
|
18
41
|
}
|
|
42
|
+
const options = synthesizedOptions(dao, config);
|
|
43
|
+
if (options !== undefined)
|
|
44
|
+
config["options"] = options;
|
|
19
45
|
const feature = {
|
|
20
46
|
slug: dao.slug,
|
|
21
47
|
config,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/model/features.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/model/features.ts"],"names":[],"mappings":"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"}
|
package/llms.txt
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# @stapel/listings-react 0.
|
|
1
|
+
# @stapel/listings-react 0.7.0
|
|
2
2
|
|
|
3
3
|
Headless React flow pair for stapel-listings (contract >=0.7 <0.8) — business + state, zero visual opinion.
|
|
4
4
|
Built on @stapel/core: typed client + StapelApiError envelope, auth token refresh,
|
|
@@ -105,11 +105,12 @@ const { tracked } = useTracked();
|
|
|
105
105
|
```
|
|
106
106
|
|
|
107
107
|
## Demos (defineDemo → manifest.demos; compiled, linted, rendered examples)
|
|
108
|
-
- listings.card → <ListingCard> [default|visitor] demo/ListingCard.demo.tsx
|
|
109
|
-
- listings.composer → <ListingComposerPage> [default|photos-in-flight|unsupported-type] demo/ListingComposer.demo.tsx
|
|
110
|
-
- listings.detail → <ListingDetailPane> [default|owner] demo/ListingDetail.demo.tsx
|
|
111
|
-
- listings.favorites → <FavoritesPane> [default|empty|failed|visitor] demo/Favorites.demo.tsx
|
|
112
|
-
- listings.mine → <MyListingsPane> [default|taken-down] demo/MyListings.demo.tsx
|
|
108
|
+
- listings.card → <ListingCard> [default|saved|visitor|no-photo] demo/ListingCard.demo.tsx
|
|
109
|
+
- listings.composer → <ListingComposerPage> [default|unwired|photos-in-flight|unsupported-type] demo/ListingComposer.demo.tsx
|
|
110
|
+
- listings.detail → <ListingDetailPane> [default|contact-unwired|owner|not-found] demo/ListingDetail.demo.tsx
|
|
111
|
+
- listings.favorites → <FavoritesPane> [default|paged|empty|failed|visitor] demo/Favorites.demo.tsx
|
|
112
|
+
- listings.mine → <MyListingsPane> [default|no-editor|taken-down|visitor|failed] demo/MyListings.demo.tsx
|
|
113
|
+
- listings.parts → <ListingStatusBlock> [default|tags|notes|media|door] demo/ListingParts.demo.tsx
|
|
113
114
|
Each source file is the canonical usage snippet (open the default variant).
|
|
114
115
|
|
|
115
116
|
## Snippets
|
package/manifest.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$generated": "by scripts/gen-manifest.mjs — do not edit; drift-gated (pnpm gen:manifest:check)",
|
|
3
3
|
"package": "@stapel/listings-react",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.7.0",
|
|
5
5
|
"backend": {
|
|
6
6
|
"module": "stapel-listings",
|
|
7
7
|
"contract": ">=0.7 <0.8"
|
|
@@ -645,7 +645,7 @@
|
|
|
645
645
|
{
|
|
646
646
|
"id": "listings.card",
|
|
647
647
|
"title": "Listing card",
|
|
648
|
-
"description": "The slot @stapel/search-react fills through the container — the two pairs never import each other. Badges come out of the stored DAO projection, which carries each type's display config beside its value, so a grid of forty cards costs one query and no category read. The heart is never hidden from a visitor: it is blocked,
|
|
648
|
+
"description": "The slot @stapel/search-react fills through the container — the two pairs never import each other. Badges come out of the stored DAO projection, which carries each type's display config beside its value, so a grid of forty cards costs one query and no category read. The heart is never hidden from a visitor: it is blocked, the reason is printed beside it as ordinary text (a disabled button never fires the events a tooltip needs), and the container attaches the sign-in door.",
|
|
649
649
|
"component": "ListingCard",
|
|
650
650
|
"covers": [
|
|
651
651
|
"ListingsProvider"
|
|
@@ -655,14 +655,16 @@
|
|
|
655
655
|
],
|
|
656
656
|
"variants": [
|
|
657
657
|
"default",
|
|
658
|
-
"
|
|
658
|
+
"saved",
|
|
659
|
+
"visitor",
|
|
660
|
+
"no-photo"
|
|
659
661
|
],
|
|
660
662
|
"source": "demo/ListingCard.demo.tsx"
|
|
661
663
|
},
|
|
662
664
|
{
|
|
663
665
|
"id": "listings.composer",
|
|
664
666
|
"title": "Listing composer",
|
|
665
|
-
"description": "The submission screen, where
|
|
667
|
+
"description": "The submission screen, where five contracts meet through four slots: the category picker and its schema (@stapel/categories-react), the location picker (@stapel/geo-react), the currency vocabulary, and the photo grid whose upload bag's refs ARE images_draft and whose settled gates the submit (@stapel/cdn-react). An UNFILLED slot renders its own name and nothing else — the composer will not ask a seller for a numeric category id, a currency code or a pair of decimal coordinates, which is what it used to do. The variants show two of the six reasons the publish button can be off: photos in flight, and a value type this build has no editor for.",
|
|
666
668
|
"component": "ListingComposerPage",
|
|
667
669
|
"covers": [
|
|
668
670
|
"ListingComposer"
|
|
@@ -672,6 +674,7 @@
|
|
|
672
674
|
],
|
|
673
675
|
"variants": [
|
|
674
676
|
"default",
|
|
677
|
+
"unwired",
|
|
675
678
|
"photos-in-flight",
|
|
676
679
|
"unsupported-type"
|
|
677
680
|
],
|
|
@@ -680,7 +683,7 @@
|
|
|
680
683
|
{
|
|
681
684
|
"id": "listings.detail",
|
|
682
685
|
"title": "Listing detail",
|
|
683
|
-
"description": "The
|
|
686
|
+
"description": "The money screen, read by two people. A buyer gets ONE primary — the container's 'message the seller' in contactSlot — with favouriting as the secondary beside it. The OWNER gets Edit and Take down instead, plus the moderation axis: since stapel-listings 0.5.0 an edit to a live listing keeps status=published and moves only moderation_status, and a page that derived one field from the other would either hide the listing or hide the review. An unfilled contactSlot names itself rather than leaving 'save to favourites' as the only verb on the page.",
|
|
684
687
|
"component": "ListingDetailPane",
|
|
685
688
|
"covers": [
|
|
686
689
|
"ListingDetail"
|
|
@@ -690,14 +693,16 @@
|
|
|
690
693
|
],
|
|
691
694
|
"variants": [
|
|
692
695
|
"default",
|
|
693
|
-
"
|
|
696
|
+
"contact-unwired",
|
|
697
|
+
"owner",
|
|
698
|
+
"not-found"
|
|
694
699
|
],
|
|
695
700
|
"source": "demo/ListingDetail.demo.tsx"
|
|
696
701
|
},
|
|
697
702
|
{
|
|
698
703
|
"id": "listings.favorites",
|
|
699
704
|
"title": "Favourites",
|
|
700
|
-
"description": "The plainest place to see the load-state discipline: 'you have not saved anything yet' and 'we could not load your favourites' are two arms, not one. Merging them is the substitution that turned a 5xx into an empty result page on 2026-08-09. A visitor is
|
|
705
|
+
"description": "The plainest place to see the load-state discipline: 'you have not saved anything yet' and 'we could not load your favourites' are two arms, not one. Merging them is the substitution that turned a 5xx into an empty result page on 2026-08-09. A visitor makes no request at all and is shown ONE state — the reason plus the door — where the pane used to render a blocked notice with a spinner turning underneath it. The pager renders only when there is a page to go to.",
|
|
701
706
|
"component": "FavoritesPane",
|
|
702
707
|
"covers": [
|
|
703
708
|
"Favorites"
|
|
@@ -707,6 +712,7 @@
|
|
|
707
712
|
],
|
|
708
713
|
"variants": [
|
|
709
714
|
"default",
|
|
715
|
+
"paged",
|
|
710
716
|
"empty",
|
|
711
717
|
"failed",
|
|
712
718
|
"visitor"
|
|
@@ -716,7 +722,7 @@
|
|
|
716
722
|
{
|
|
717
723
|
"id": "listings.mine",
|
|
718
724
|
"title": "My listings",
|
|
719
|
-
"description": "stapel-listings 0.7.0 gave the owner's own listings a route (GET my/listings/, every status, ?status= for a tab's set), so the rows here are the contract's own.
|
|
725
|
+
"description": "stapel-listings 0.7.0 gave the owner's own listings a route (GET my/listings/, every status, ?status= for a tab's set), so the rows here are the contract's own. Four things the pane refuses to smooth over: both axes on every row (a LIVE listing whose edit is under review says so — status alone cannot); a moderation takedown, which my/counters counts in no tab at all, sits ABOVE the tabs; every switched-off action prints its reason beside itself instead of hiding it in a hover a phone cannot open; and Delete asks first, through a bottom sheet. The row is a thumbnail plus a min-width:0 column, so four actions wrap at 390px instead of clipping.",
|
|
720
726
|
"component": "MyListingsPane",
|
|
721
727
|
"covers": [
|
|
722
728
|
"MyListings"
|
|
@@ -726,9 +732,35 @@
|
|
|
726
732
|
],
|
|
727
733
|
"variants": [
|
|
728
734
|
"default",
|
|
729
|
-
"
|
|
735
|
+
"no-editor",
|
|
736
|
+
"taken-down",
|
|
737
|
+
"visitor",
|
|
738
|
+
"failed"
|
|
730
739
|
],
|
|
731
740
|
"source": "demo/MyListings.demo.tsx"
|
|
741
|
+
},
|
|
742
|
+
{
|
|
743
|
+
"id": "listings.parts",
|
|
744
|
+
"title": "Listing parts",
|
|
745
|
+
"description": "The pieces the panes are built from. ONE status treatment: a tag carrying the tone and the moderation sentence as ordinary text beneath it — it used to be three (a full-bleed olive bar, a full-bleed grey bar, bare red text) down a single dashboard. The media placeholder is the aspect-ratio box the photo would have filled, painted from theme tokens, so it belongs to whichever side the theme is on instead of glaring white in the dark. The sign-in door is the container's route, never the pair's.",
|
|
746
|
+
"component": "ListingStatusBlock",
|
|
747
|
+
"covers": [
|
|
748
|
+
"LifecycleTag",
|
|
749
|
+
"ModerationNote",
|
|
750
|
+
"ListingPhoto",
|
|
751
|
+
"SignInLink"
|
|
752
|
+
],
|
|
753
|
+
"tokens": [
|
|
754
|
+
"surface-raised"
|
|
755
|
+
],
|
|
756
|
+
"variants": [
|
|
757
|
+
"default",
|
|
758
|
+
"tags",
|
|
759
|
+
"notes",
|
|
760
|
+
"media",
|
|
761
|
+
"door"
|
|
762
|
+
],
|
|
763
|
+
"source": "demo/ListingParts.demo.tsx"
|
|
732
764
|
}
|
|
733
765
|
],
|
|
734
766
|
"i18nKeys": [
|
|
@@ -800,6 +832,7 @@
|
|
|
800
832
|
"listings.blocked.guest",
|
|
801
833
|
"listings.blocked.in_flight",
|
|
802
834
|
"listings.blocked.mandate_unknown",
|
|
835
|
+
"listings.blocked.no_editor",
|
|
803
836
|
"listings.blocked.sign_in",
|
|
804
837
|
"listings.blocked.transition",
|
|
805
838
|
"listings.card.favorite_add",
|
|
@@ -812,6 +845,7 @@
|
|
|
812
845
|
"listings.compose.auto_republish",
|
|
813
846
|
"listings.compose.blocked.busy",
|
|
814
847
|
"listings.compose.blocked.details_unavailable",
|
|
848
|
+
"listings.compose.blocked.incomplete",
|
|
815
849
|
"listings.compose.blocked.mirror",
|
|
816
850
|
"listings.compose.blocked.no_category",
|
|
817
851
|
"listings.compose.blocked.no_draft",
|
|
@@ -831,9 +865,8 @@
|
|
|
831
865
|
"listings.compose.edit_title",
|
|
832
866
|
"listings.compose.geo_incomplete",
|
|
833
867
|
"listings.compose.invalid_summary",
|
|
834
|
-
"listings.compose.
|
|
868
|
+
"listings.compose.location_help",
|
|
835
869
|
"listings.compose.location_label",
|
|
836
|
-
"listings.compose.lon_label",
|
|
837
870
|
"listings.compose.new_title",
|
|
838
871
|
"listings.compose.photos",
|
|
839
872
|
"listings.compose.price_invalid",
|
|
@@ -851,6 +884,7 @@
|
|
|
851
884
|
"listings.compose.title_too_long",
|
|
852
885
|
"listings.compose.too_many_images",
|
|
853
886
|
"listings.detail.description",
|
|
887
|
+
"listings.detail.edit",
|
|
854
888
|
"listings.detail.expires_at",
|
|
855
889
|
"listings.detail.load_failed",
|
|
856
890
|
"listings.detail.loading",
|
|
@@ -865,18 +899,25 @@
|
|
|
865
899
|
"listings.detail.retry",
|
|
866
900
|
"listings.detail.specs",
|
|
867
901
|
"listings.detail.stock",
|
|
902
|
+
"listings.detail.take_down",
|
|
868
903
|
"listings.detail.unreadable_features",
|
|
869
904
|
"listings.error.unknown",
|
|
870
905
|
"listings.favorites.empty",
|
|
906
|
+
"listings.favorites.empty_hint",
|
|
871
907
|
"listings.favorites.load_failed",
|
|
872
908
|
"listings.favorites.loading",
|
|
909
|
+
"listings.favorites.sign_in_hint",
|
|
873
910
|
"listings.favorites.title",
|
|
874
911
|
"listings.mine.archive",
|
|
875
912
|
"listings.mine.blocked.load_failed",
|
|
876
913
|
"listings.mine.blocked.title",
|
|
914
|
+
"listings.mine.blocked.title.one",
|
|
915
|
+
"listings.mine.blocked.title.other",
|
|
877
916
|
"listings.mine.complete",
|
|
878
917
|
"listings.mine.counters_failed",
|
|
879
918
|
"listings.mine.delete",
|
|
919
|
+
"listings.mine.delete_confirm_body",
|
|
920
|
+
"listings.mine.delete_confirm_title",
|
|
880
921
|
"listings.mine.edit",
|
|
881
922
|
"listings.mine.empty",
|
|
882
923
|
"listings.mine.empty.active",
|
|
@@ -901,6 +942,7 @@
|
|
|
901
942
|
"listings.nav.detail",
|
|
902
943
|
"listings.nav.favorites",
|
|
903
944
|
"listings.nav.mine",
|
|
945
|
+
"listings.page.indicator",
|
|
904
946
|
"listings.page.next",
|
|
905
947
|
"listings.page.prev",
|
|
906
948
|
"listings.status.archived",
|