import type { MattrixwvButtonSwitchProps } from "$/types/InputTypes";
import { Switch } from "@headlessui/react";
import { forwardRef } from "react";


const ButtonSwitch = forwardRef<HTMLButtonElement, MattrixwvButtonSwitchProps>(({
	id,
	className,
	name,
	value,
	defaultChecked,
	checked,
	onChange,
	disabled,
	onNode,
	offNode
}, ref ) => {
	return (
		<Switch
			id={id}
			className={className}
			name={name}
			value={value}
			defaultChecked={defaultChecked}
			checked={checked}
			onChange={onChange}
			disabled={disabled}
			ref={ref}
		>
			{({ checked }) => (
				<>
					{checked ? onNode : offNode}
				</>
			)}
		</Switch>
	);
});

ButtonSwitch.displayName = "ButtonSwitch";

export default ButtonSwitch;
