import type { BaseSelectProps } from './BaseSelect';
import { BaseSelect } from './BaseSelect';
import type { SelectOption } from './types';

export type MultiSelectProps<TValue = string> = {
  options: SelectOption<TValue>[];
  values?: TValue[];
  defaultValues?: TValue[];
  onChange?: (values: TValue[]) => void;
} & Omit<BaseSelectProps<TValue>, 'isMulti' | 'value' | 'defaultValue' | 'onChange' | 'onChangeMulti' | 'options'>;

export function MultiSelect<TValue = string>({ onChange, ...rest }: MultiSelectProps<TValue>) {
  return (
    <BaseSelect<TValue>
      {...rest}
      isMulti
      closeMenuOnSelect={false}
      onChangeMulti={(vals) => onChange?.(vals)}
    />
  );
}

