import { Icon } from '@iconify-icon/solid';
import { isNotNil } from 'es-toolkit';
import {
createEffect,
createMemo,
createSignal,
mergeProps,
ParentComponent,
ParentProps,
Show,
} from 'solid-js';
import { Dynamic } from 'solid-js/web';
interface CheckBoxProps {
name?: string;
checked?: boolean;
disabled?: boolean;
onChange?: (checked?: boolean) => void;
}
const CheckIcon = [
() => ,
() => ,
];
const Check: ParentComponent = (props) => {
const mProps = mergeProps[]>(
{
disabled: false,
},
props,
);
const originalChecked = createMemo(() => mProps.checked);
const [internalChecked, setInternalChecked] = createSignal(undefined);
createEffect(() => {
if (isNotNil(originalChecked()) && originalChecked() !== internalChecked()) {
setInternalChecked(originalChecked());
}
});
const handleClick = () => {
if (mProps.disabled) {
return;
}
setInternalChecked((prev) => !prev);
mProps.onChange?.(internalChecked());
};
return (
);
};
export default Check;