mirror of
https://github.com/trafficlunar/tomodachi-share.git
synced 2026-03-30 03:59:14 +00:00
60 lines
1.6 KiB
TypeScript
60 lines
1.6 KiB
TypeScript
import { useState } from "react";
|
|
import ColorPicker from "../color-picker";
|
|
import { SwitchMiiInstructions } from "@/types";
|
|
import TypeSelector from "../type-selector";
|
|
|
|
interface Props {
|
|
instructions: React.RefObject<SwitchMiiInstructions>;
|
|
}
|
|
|
|
const COLORS = ["FFD8BA", "FFD5AC", "FEC1A4", "FEC68F", "FEB089", "FEBA6B", "F39866", "E89854", "E37E3F", "B45627", "914220", "59371F", "662D16", "392D1E"];
|
|
|
|
export default function HeadTab({ instructions }: Props) {
|
|
const [color, setColor] = useState(108);
|
|
const [type, setType] = useState(0);
|
|
|
|
return (
|
|
<div className="relative grow p-3 pb-0!">
|
|
<div className="flex h-full">
|
|
<div className="grow flex flex-col">
|
|
<div className="flex items-center h-8">
|
|
<h1 className="font-bold text-xl">Head</h1>
|
|
</div>
|
|
|
|
<div className="flex justify-center h-74 mt-auto">
|
|
<TypeSelector
|
|
length={16}
|
|
type={type}
|
|
setType={(i) => {
|
|
setType(i);
|
|
instructions.current.head.type = i;
|
|
}}
|
|
/>
|
|
</div>
|
|
</div>
|
|
|
|
<div className="shrink-0 w-21 pb-3 flex flex-col items-center">
|
|
<ColorPicker
|
|
color={color}
|
|
setColor={(i) => {
|
|
setColor(i);
|
|
instructions.current.head.skinColor = i;
|
|
}}
|
|
/>
|
|
|
|
<div className="grid grid-cols-2 gap-1 w-fit mt-auto">
|
|
{COLORS.map((hex, i) => (
|
|
<button
|
|
type="button"
|
|
key={i + 108}
|
|
onClick={() => setColor(i + 108)}
|
|
className={`size-9 rounded-lg cursor-pointer ring-offset-2 ring-orange-500 ${color === i + 108 ? "ring-2" : ""}`}
|
|
style={{ backgroundColor: `#${hex}` }}
|
|
></button>
|
|
))}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|