feat(category): add resets_others option
All checks were successful
Staging Build / build (push) Successful in 2m46s

This commit is contained in:
DanielS
2026-07-09 17:27:16 +02:00
parent 567d1f226b
commit 6b35917a06
5 changed files with 124 additions and 42 deletions

View File

@@ -91,7 +91,8 @@ export function WysiwygAdminClient({
free_items_limit: 0,
preselect: false,
show_in_kauf: mode === 'purchase',
show_in_abo: mode === 'subscription'
show_in_abo: mode === 'subscription',
resets_others: false
})
setCategories([...categories, newCat])
} catch (e) {
@@ -182,7 +183,7 @@ export function WysiwygAdminClient({
/>
{/* Kategorie Attribute (Toggles) */}
<div className="flex items-center gap-6 mt-3 text-xs text-slate-400">
<div className="flex flex-wrap items-center gap-6 mt-3 text-xs text-slate-400">
<label className="flex items-center gap-2 cursor-pointer select-none">
<input
type="checkbox"
@@ -196,11 +197,49 @@ export function WysiwygAdminClient({
<input
type="checkbox"
checked={cat.allow_multiselect}
onChange={(e) => handleCategoryToggle(cat.id, { allow_multiselect: e.target.checked })}
onChange={(e) => {
const checked = e.target.checked
handleCategoryToggle(cat.id, {
allow_multiselect: checked,
...(checked ? { preselect: false } : {})
})
}}
className="rounded border-white/10 bg-white/5 text-primary focus:ring-0 focus:ring-offset-0"
/>
<span>Mehrfachauswahl</span>
</label>
{!cat.allow_multiselect && (
<label className="flex items-center gap-2 cursor-pointer select-none">
<input
type="checkbox"
checked={cat.preselect}
onChange={(e) => handleCategoryToggle(cat.id, { preselect: e.target.checked })}
className="rounded border-white/10 bg-white/5 text-primary focus:ring-0 focus:ring-offset-0"
/>
<span>Vorauswahl</span>
</label>
)}
<label className="flex items-center gap-2 cursor-pointer select-none">
<input
type="checkbox"
checked={cat.resets_others}
onChange={(e) => handleCategoryToggle(cat.id, { resets_others: e.target.checked })}
className="rounded border-white/10 bg-white/5 text-primary focus:ring-0 focus:ring-offset-0"
/>
<span>Rest zurücksetzen</span>
</label>
{cat.allow_multiselect && (
<div className="flex items-center gap-2">
<span>Freie Artikel Limit:</span>
<input
type="number"
min={0}
value={cat.free_items_limit}
onChange={(e) => handleCategoryToggle(cat.id, { free_items_limit: parseInt(e.target.value) || 0 })}
className="w-12 rounded border-white/10 bg-white/5 text-white focus:ring-0 focus:ring-offset-0 px-1 py-0.5 text-center"
/>
</div>
)}
</div>
</div>
<button