el.xwx.moe/components/RadioButton.tsx

35 lines
997 B
TypeScript
Raw Normal View History

2023-05-15 14:18:33 -05:00
import { faCircle, faCircleCheck } from "@fortawesome/free-regular-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { ChangeEventHandler } from "react";
type Props = {
label: string;
state: boolean;
onClick: ChangeEventHandler<HTMLInputElement>;
};
export default function RadioButton({ label, state, onClick }: Props) {
return (
<label className="cursor-pointer flex items-center gap-2">
<input
type="radio"
value={label}
className="peer sr-only"
checked={state}
onChange={onClick}
/>
<FontAwesomeIcon
icon={faCircleCheck}
2023-08-30 23:17:27 -05:00
className="w-5 h-5 text-sky-500 dark:text-sky-500 peer-checked:block hidden"
2023-05-15 14:18:33 -05:00
/>
<FontAwesomeIcon
icon={faCircle}
2023-08-30 23:17:27 -05:00
className="w-5 h-5 text-sky-500 dark:text-sky-500 peer-checked:hidden block"
2023-05-15 14:18:33 -05:00
/>
2023-08-11 00:11:02 -05:00
<span className="text-black dark:text-white rounded select-none">
{label}
</span>
2023-05-15 14:18:33 -05:00
</label>
);
}