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
@@ -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": {