import { useState } from "react"; import { MiiGender } from "@prisma/client"; import DatingPreferencesViewer from "@/components/mii/dating-preferences"; import VoiceViewer from "@/components/mii/voice-viewer"; import PersonalityViewer from "@/components/mii/personality-viewer"; import { SwitchMiiInstructions } from "@/types"; interface Props { instructions: React.RefObject; } export default function HeadTab({ instructions }: Props) { const [height, setHeight] = useState(50); const [weight, setWeight] = useState(50); const [datingPreferences, setDatingPreferences] = useState([]); const [voice, setVoice] = useState({ speed: 50, pitch: 50, depth: 50, delivery: 50, tone: 0, }); const [personality, setPersonality] = useState({ movement: -1, speech: -1, energy: -1, thinking: -1, overall: -1, }); return (

Misc


Body
{ setHeight(e.target.valueAsNumber); instructions.current.height = e.target.valueAsNumber; }} />
{ setWeight(e.target.valueAsNumber); instructions.current.weight = e.target.valueAsNumber; }} />

Dating Preferences
{ setDatingPreferences((prev) => { const updated = e.target.checked ? (prev.includes(gender) ? prev : [...prev, gender]) : prev.filter((p) => p !== gender); instructions.current.datingPreferences = updated; return updated; }); }} />

Voice
{ setVoice((p) => ({ ...p, [label]: e.target.valueAsNumber })); instructions.current.voice[label as keyof typeof voice] = e.target.valueAsNumber; }} onClickTone={(i) => { setVoice((p) => ({ ...p, tone: i })); instructions.current.voice.tone = i; }} />

Personality
{ setPersonality((p) => { const updated = { ...p, [key]: i }; instructions.current.personality = updated; return updated; }); instructions.current.personality = personality; }} />
); }