diff --git a/src/components/HideFromTraitsPanel.tsx b/src/components/HideFromTraitsPanel.tsx index ec9571e..ba8bce1 100644 --- a/src/components/HideFromTraitsPanel.tsx +++ b/src/components/HideFromTraitsPanel.tsx @@ -7,6 +7,7 @@ import { buildHideRuleLabel, type HideFromRule, } from '@/lib/privacy-rules'; +import type { Position } from '@/types'; interface HideFromTraitsPanelProps { rules: HideFromRule[]; @@ -14,7 +15,7 @@ interface HideFromTraitsPanelProps { onRemove: (id: string) => void; } -const POSITIONS = ['top', 'vers', 'bottom', 'side', 'oral', 'watching'] as const; +const POSITIONS: Position[] = ['top', 'vers', 'bottom', 'side']; export default function HideFromTraitsPanel({ rules, @@ -26,7 +27,7 @@ export default function HideFromTraitsPanel({ const [weightLb, setWeightLb] = useState('220'); const [ageMin, setAgeMin] = useState(''); const [ageMax, setAgeMax] = useState(''); - const [positions, setPositions] = useState([]); + const [positions, setPositions] = useState([]); const [bodyTypes, setBodyTypes] = useState([]); const [error, setError] = useState(''); @@ -45,8 +46,16 @@ export default function HideFromTraitsPanel({ return parts.length ? parts.join(' ยท ') : 'Add at least one trait'; }, [heightFt, heightIn, weightLb, ageMin, ageMax, positions, bodyTypes]); - const toggle = (list: string[], value: string, set: (v: string[]) => void) => { - set(list.includes(value) ? list.filter((x) => x !== value) : [...list, value]); + const togglePosition = (pos: Position) => { + setPositions((list) => + list.includes(pos) ? list.filter((x) => x !== pos) : [...list, pos] + ); + }; + + const toggleBodyType = (value: string) => { + setBodyTypes((list) => + list.includes(value) ? list.filter((x) => x !== value) : [...list, value] + ); }; const handleAdd = () => { @@ -196,7 +205,7 @@ export default function HideFromTraitsPanel({