feat(catalog): add auto-category wizard with live preview and smart suggestions
CI / check (push) Successful in 3m1s
CI / deploy (push) Successful in 2m7s
CI / publish-container (push) Successful in 45s

- Add AutoCategoryDialog: pick furni (or empty page), suggest caption/icon/layout, live preview
- Add createAutoCategory server action (page + offers in one export) with CatalogKind
- Extend furni search API with interactionType
- Share ShopTile and refactor inline-editor/items-shop-preview to use it
- Add suggestion heuristics (suggestCategoryName/dIcon/layout) with tests
- Add autoCategory translations (en/nl)
This commit is contained in:
openhands committed 2026-09-11 18:47:31 +02:00
1 parent baeb54aeb5
commit f832479e52
14 files changed
+2577 -567

No files matched your search

+41
View File
@@ -2157,6 +2157,47 @@
"clubHint": "Restricts access to users with an HC subscription.",
"yes": "Yes",
"no": "No"
},
"preview": {
"label": "Live catalog preview",
"title": "Live preview",
"on": "On",
"off": "Off",
"untitled": "Untitled page",
"noItems": "No offers on this page yet",
"items": "offer(s)",
"disabledHint": "This page is disabled — players cannot see it.",
"suggestedLayout": "Better layout suggested",
"suggestedLayoutReason": "This page {reason}. Switch to “{layout}” to match players’ expectations.",
"applyLayout": "Apply layout"
},
"autoCategory": {
"title": "Auto-Category",
"itemsBadge": "{count} items",
"fromFurni": "From furni",
"emptyPage": "Empty page",
"searchPlaceholder": "Search furni by name or classname…",
"noResults": "No results",
"added": "Added",
"price": "Price",
"free": "Free",
"setPrice": "Set a price",
"credits": "Credits",
"points": "Points",
"pointsType": "Type",
"parent": "Parent",
"root": "Catalog root",
"caption": "Caption",
"captionPlaceholder": "e.g. Chairs, Wallpapers…",
"icon": "Icon",
"pickIcon": "Pick icon",
"layout": "Layout",
"suggestedLayout": "Suggested: {layout}",
"enabled": "Enabled",
"visible": "Visible",
"cancel": "Cancel",
"create": "Create",
"createWithItems": "Create ({count} items)"
}
},
"bulk": {
+41
View File
@@ -1925,6 +1925,47 @@
"clubHint": "Beperkt toegang tot gebruikers met een HC-abonnement.",
"yes": "Ja",
"no": "Nee"
},
"preview": {
"label": "Live catalogusvoorbeeld",
"title": "Live voorbeeld",
"on": "Aan",
"off": "Uit",
"untitled": "Naamloze pagina",
"noItems": "Nog geen aanbiedingen op deze pagina",
"items": "aanbieding(en)",
"disabledHint": "Deze pagina is uitgeschakeld — spelers zien haar niet.",
"suggestedLayout": "Betere indeling voorgesteld",
"suggestedLayoutReason": "Deze pagina {reason}. Schakel over naar “{layout}” zodat deze overeenkomt met wat spelers verwachten.",
"applyLayout": "Indeling toepassen"
},
"autoCategory": {
"title": "Auto-Categorie",
"itemsBadge": "{count} items",
"fromFurni": "Vanuit furni",
"emptyPage": "Lege pagina",
"searchPlaceholder": "Zoek furni op naam of classname…",
"noResults": "Geen resultaten",
"added": "Toegevoegd",
"price": "Prijs",
"free": "Gratis",
"setPrice": "Stel een prijs in",
"credits": "Credits",
"points": "Punten",
"pointsType": "Type",
"parent": "Bovenliggende categorie",
"root": "Catalogus-hoofdmap",
"caption": "Naam",
"captionPlaceholder": "bijv. Stoelen, Behang…",
"icon": "Icoon",
"pickIcon": "Kies icoon",
"layout": "Indeling",
"suggestedLayout": "Voorgesteld: {layout}",
"enabled": "Ingeschakeld",
"visible": "Zichtbaar",
"cancel": "Annuleren",
"create": "Aanmaken",
"createWithItems": "Aanmaken ({count} items)"
}
},
"bulk": {