import {
     Platform,
     UIManager,
     LayoutAnimation,
     PixelRatio,
     Dimensions,
} from 'react-native';

const scaleValue = PixelRatio.get() / 2;

export const enableExperimental = () => {
     if (Platform.OS === 'android') {
          UIManager.setLayoutAnimationEnabledExperimental(true);
     }
     LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut);
};

export const scaleWithPixel = (size, limitScale = 1.2) => {
     /* setting default upto 20% when resolution device upto 20% with defalt iPhone 7 */
     const value = scaleValue > limitScale ? limitScale : scaleValue;
     return size * value;
};

export const heightHeader = () => {
     const width = Dimensions.get('window').width;
     const height = Dimensions.get('window').height;
     const landscape = width > height;

     if (Platform.OS === 'android') return 45;
     if (Platform.isPad) return 65;
     switch (height) {
          case 375:
          case 414:
          case 812:
          case 896:
               return landscape ? 45 : 88;
          default:
               return landscape ? 45 : 65;
     }
};

export const heightTabView = () => {
     const height = Dimensions.get('window').height;
     let size = height - heightHeader();
     switch (height) {
          case 375:
          case 414:
          case 812:
          case 896:
               size -= 30;
               break;
          default:
               break;
     }

     return size;
};

export const getWidthDevice = () => {
     return Dimensions.get('window').width;
};

export const getHeightDevice = () => {
     return Dimensions.get('window').height;
};

export const scrollEnabled = (contentWidth, contentHeight) => {
     return contentHeight > Dimensions.get('window').height - heightHeader();
};
