import ForgeUI from '@forge/ui';
import React from "react";
import {Select} from "@forge/react";
import {SelectProps} from "@atlaskit/forge-react-types";

export interface ControlledSelectProps extends SelectProps {
}

export default function ControlledSelect(props: ControlledSelectProps) {
  const { defaultValue, options, isMulti, onChange } = props;

  return (
    <Select
      isSearchable={true}
      appearance="default"
      spacing="compact"
      options={options}
      {...props}
      defaultValue={
        isMulti ?
        options?.filter((o: any) => defaultValue?.includes(o.value)) :
        options?.find((o: any) => o.value === defaultValue)
      }
      onChange={(selectedOption: any, e) => {
        if (onChange) {
          if (isMulti) {
            onChange(selectedOption.map((o: any) => {
              return o.value
            }), e)
          } else {
            onChange(selectedOption.value, e)
          }
        }
      }}

    />
  );
}