import React from 'react';

export interface IPropsButtonsGroupOption {
   name: string | JSX.Element;
   value?: any;
   disabled?: boolean;
}

export interface IPropsButtonsGroup {
   disabled?: boolean; // desabilitar campo
   options: IPropsButtonsGroupOption[]; // Botões
   name?: any; // name do input (Se name for definido Unnform será ativado)
   multiSelection?: boolean; // habilitar seleção de várias opções
   allowEmpty?: boolean; // aceita campo vazio, caso clique na opção selecionada está será definida como inativa
   title?: string; // titulo do campo
   value?: any; // Se não for definido name, value deve ser definido para saber o valor do componente
   defaultVale?: any;
   onSelect?: (value?: any, option?: IPropsButtonsGroupOption) => void; // callback ao mudar valor do componente
   error?: string; // mostrar erro no component
   variant?: 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'dark' | 'light' | 'link'; // Variante de cor
   bgColor?: string; // color principal
   oneLine?: boolean; // todos os campos irão ficar na mesma linha com scroll horizontal
   rounded?: boolean; // habilita bordar arredondadas
   outline?: boolean; // habilita bordar arredondadas
   separate?: boolean; // habilita separação dos botões
   fullLine?: boolean; // ativa flex=1 para todos os botões
   activeBtnStyle?: any; // estilo do botão ativo
   activeTextStyle?: any; // estilo do texto do botão ativo
   inactiveBtnStyle?: any; // estilo do botão inativo
   inactiveTextStyle?: any; // estilo do texto botão inativo
}

export function getValue(data: any, multiSelection = false): any {
   if (multiSelection && !(data instanceof Array)) {
      return [];
   }

   return data;
}
