import React, { useState } from 'react';
import { Checkbox } from 'antd';
import type { CheckboxValueType } from 'antd/es/checkbox/Group';

interface CheckboxOption {
    label: string
    value: CheckboxValueType
    disabled?: boolean
}

interface CheckboxGroupProps {
    options: CheckboxOption[]
    defaultValue?: CheckboxValueType[]
    onChange?: (checkedValues: CheckboxValueType[]) => void
    value?: CheckboxValueType[] // Add the value prop
    [key: string]: any
}

const CheckboxInput: React.FC<CheckboxGroupProps> = ({
  options,
  defaultValue = [],
  onChange,
  ...rest
}) => {
  const [checkedValues, setCheckedValues] = useState<CheckboxValueType[]>(defaultValue);

  const handleCheckboxChange = (values: CheckboxValueType[]): void => {
    setCheckedValues(values);
    if (onChange !== null && onChange !== undefined) {
      onChange(values);
    }
  };

  return (
    <Checkbox.Group
      options={options}
      value={checkedValues}
      onChange={handleCheckboxChange}
      {...rest}
    />
  );
};

export default CheckboxInput;
