All files / atoms/Input/mobile/Components/Atoms StatusIcon.tsx

50% Statements 2/4
0% Branches 0/4
0% Functions 0/1
50% Lines 2/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47                      2x                                                               2x      
import React from 'react';
import { Warning, CicrleCheck } from '@sb/ui/components/atoms/Icons/index.native';
import { View } from 'react-native';
 
interface StatusIconProps {
  status?: 'error' | 'success' | 'warning' | 'default';
  size?: number;
  width?: number;
  height?: number;
}
 
const StatusIcon = ({
  status = 'default',
  size = 20,
  width = 20,
  height = 20,
}: StatusIconProps) => {
  const config = {
    error: {
      icon: <Warning size={size} color="red" width={width} height={height} />,
      color: 'red',
    },
    success: {
      icon: <CicrleCheck size={size} color="green" width={width} height={height} />,
      color: 'green',
    },
    warning: {
      icon: <Warning size={size} color="orange" width={width} height={height} />,
      color: 'orange',
    },
    default: {
      icon: null,
      color: 'transparent',
    },
  };
 
  return (
    <View style={{ width: size, height: size }} className="items-center justify-center">
      {config[status as keyof typeof config].icon}
    </View>
  );
};
 
StatusIcon.displayName = 'StatusIcon';
 
export default StatusIcon;