import React from 'react';
import { SIcon } from '../s-components/s-icon';
import { TIconName, TStyled } from '../types';

type TProps = {
  name?: TIconName;
  size?: 'sm' | 'md' | 'lg' | number;
  testID?: string;
} & TStyled;
/*
 * Taken from here:
 * https://drive.google.com/drive/folders/1EW02DyWvANKYGCAlAcppaaOEKvBCVSNw
 * Generate here:
 * https://icomoon.io/app/#/select
 * In case regeneration - we should use the latest version of /assets/fonts/icomoon/selection.json
 * */
export const Icon: React.FC<TProps> = props => {
  const { name, size, ...rest } = props;
  let iconSize;

  switch (size) {
    case 'sm':
      iconSize = 10;
      break;
    case 'md':
      iconSize = 20;
      break;
    case 'lg':
      iconSize = 30;
      break;
    default:
      iconSize = size || 10;
  }

  if (!name) return null;

  return <SIcon name={`icon-${name}`} size={iconSize} {...rest} />;
};

Icon.defaultProps = {
  size: 'sm',
  name: undefined,
};
