import { useState } from "react"; import { SwitchMiiInstructions } from "@/types"; import { MiiGender } from "@prisma/client"; interface Props { instructions: React.RefObject; } const VOICE_SETTINGS: string[] = ["Speed", "Pitch", "Depth", "Delivery"]; const PERSONALITY_SETTINGS: { label: string; left: string; right: string }[] = [ { label: "Movement", left: "Slow", right: "Quick" }, { label: "Speech", left: "Polite", right: "Honest" }, { label: "Energy", left: "Flat", right: "Varied" }, { label: "Thinking", left: "Serious", right: "Chill" }, { label: "Overall", left: "Normal", right: "Quirky" }, ]; 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) => e.target.checked ? (prev.includes("MALE") ? prev : [...prev, "MALE"]) : prev.filter((p) => p !== "MALE"), ); instructions.current.datingPreferences = datingPreferences; }} />
{ setDatingPreferences((prev) => e.target.checked ? (prev.includes("FEMALE") ? prev : [...prev, "FEMALE"]) : prev.filter((p) => p !== "FEMALE"), ); instructions.current.datingPreferences = datingPreferences; }} />
{ setDatingPreferences((prev) => e.target.checked ? (prev.includes("NONBINARY") ? prev : [...prev, "NONBINARY"]) : prev.filter((p) => p !== "NONBINARY"), ); instructions.current.datingPreferences = datingPreferences; }} />

Voice
{VOICE_SETTINGS.map((label) => (
{ setVoice((p) => ({ ...p, [label]: e.target.valueAsNumber })); instructions.current.voice[label as keyof typeof voice] = e.target.valueAsNumber; }} />
))}
{Array.from({ length: 6 }).map((_, i) => ( ))}

Personality
{PERSONALITY_SETTINGS.map(({ label, left, right }) => { const key = label.toLowerCase() as keyof typeof personality; return (
{label} {left}
{Array.from({ length: 6 }).map((_, i) => { const colors = ["bg-green-400", "bg-green-300", "bg-teal-200", "bg-orange-200", "bg-orange-300", "bg-orange-400"]; return ( ); })}
{right}
); })}
); }