Fix Position type in hide-from traits panel
This commit is contained in:
@@ -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<string[]>([]);
|
||||
const [positions, setPositions] = useState<Position[]>([]);
|
||||
const [bodyTypes, setBodyTypes] = useState<string[]>([]);
|
||||
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({
|
||||
<button
|
||||
key={p}
|
||||
type="button"
|
||||
onClick={() => toggle(positions, p, setPositions)}
|
||||
onClick={() => togglePosition(p)}
|
||||
className={`px-2.5 py-1 rounded-full text-xs capitalize ${
|
||||
positions.includes(p)
|
||||
? 'bg-amber-500/30 text-amber-200 border border-amber-500/50'
|
||||
@@ -216,7 +225,7 @@ export default function HideFromTraitsPanel({
|
||||
<button
|
||||
key={b}
|
||||
type="button"
|
||||
onClick={() => toggle(bodyTypes, b, setBodyTypes)}
|
||||
onClick={() => toggleBodyType(b)}
|
||||
className={`px-2.5 py-1 rounded-full text-xs capitalize ${
|
||||
bodyTypes.includes(b)
|
||||
? 'bg-amber-500/30 text-amber-200 border border-amber-500/50'
|
||||
|
||||
Reference in New Issue
Block a user