/**
 * 新版搜索列表复用组件
 * @邠心vbe on 2023/02/03
 */
import React from 'react';
import { Pressable, StyleSheet, Text, View } from 'react-native';
import TextRadius from '../../components/TextRadius';
import utils from '../../utils/utils';
import Provider from '../charge/Provider';
import ConnectType from './ConnectType';
import app from '../../../app.json';

export default ListViewV2 = ({item, index, separators, onPress, onFavorite}) => {
  if (item.id) {
    return (
      <Pressable 
        style={styles.itemView}
        key={index}
        onPress={onPress}
        android_ripple={ripple}>
        {/* <Ionicons
          name="md-location-sharp"
          size={20}
          color="#E5E5E5"
        /> */}
        <View style={styles.stationInfo} >
          <Text style={styles.stationName}>{item.name}</Text>
          <View style={ui.flex}>
            <View style={ui.flex1}>
              <Text style={styles.stationAddress}>{item.address}</Text>
              {/* <Provider providers={item.serviceProvider}/> */}
              <View style={styles.connectView}>
                <ConnectType color={textCancel} {...item.acConnector}/>
                <ConnectType color={textCancel} {...item.dcConnector}/>
              </View>
              <View style={ui.flexc}>
                <TextRadius style={[styles.infoStatus, styles.available]}>{item.distance}</TextRadius>
                {item.allConnector && item.allConnector.available > 0 &&
                  <TextRadius style={[styles.infoStatus, styles.available]}>{$t('charging.statusAvailable')}</TextRadius>
                }
                {item.siteType == "Private" &&
                  <TextRadius style={[styles.infoStatus, styles.private]}>{$t('home.statusPrivate')}</TextRadius>
                }
              </View>
            </View>
            { app.modules.bookmarks &&
              <Pressable
                style={[styles.directIconView, {backgroundColor: item.favorite ? colorPrimary : colorCancel}]}
                android_ripple={rippleLess}
                onPress={onFavorite}>
                <MaterialIcons
                  name="star"
                  size={22}
                  color={colorLight}/>
              </Pressable>
            }
            <Pressable
              style={styles.directIconView}
              android_ripple={rippleLess}
              onPress={() => {
                utils.directMaps(item.latitude, item.longitude, item.address);
              }}>
              <MaterialCommunityIcons
                name="navigation-variant"
                size={22}
                color={colorLight}/>
            </Pressable>
            {/* <Pressable 
              style={styles.directView}
              onPress={() => {
                utils.directMaps(item.latitude, item.longitude, item.address);
              }}>
              <MaterialIcons
                name='directions'
                size={32}
                color={colorAccent}/>
            </Pressable> */}
          </View>
        </View>
      </Pressable>
    );
  } else {
    return <></>;
  }
}

const styles = StyleSheet.create({
  itemView: {
    padding: 16,
    flexDirection: 'row',
    borderBottomWidth: 1,
    borderBottomColor: '#eee'
  },
  stationInfo: {
    flex: 1,
    paddingLeft: 0
  },
  nameView: {
    paddingTop: 3,
    alignItems: 'center',
    flexDirection: 'row'
  },
  stationName: {
    color: textPrimary,
    fontSize: 16,
    fontWeight: 'bold'
  },
  stationAddress: {
    color: textCancel,
    fontSize: 14,
    paddingTop: 4,
    paddingBottom: 4
  },
  infoStatus: {
    fontSize: 12,
    borderRadius: 3,
    marginRight: 5,
    borderWidth: 1,
    ...$padding(3, 8, 2)
  },
  selected: {
    color: textPrimary,
    borderColor: colorAccent
  },
  available: {
    color: '#90DB0A',
    borderColor: '#90DB0A'
  },
  unavailable: {
    color: '#999',
    fontSize: 10.5,
    paddingTop: 7,
    paddingLeft: 9,
    paddingRight: 9,
    paddingBottom: 7,
    backgroundColor: '#CCC'
  },
  private: {
    color: '#FDB702',
    borderColor: '#FDB702'
  },
  connectView: {
    paddingTop: 4,
    paddingBottom: 8,
    alignItems: 'center',
    flexDirection: 'row'
  },
  connectType: {
    borderWidth: 1,
    borderColor: textPrimary,
    borderRadius: 3,
    marginRight: 16,
    alignItems: 'center',
    flexDirection: 'row',
  },
  directView: {
    zIndex: 1,
    width: 32,
    height: 32,
    marginTop: 4,
    marginLeft: 8,
    alignItems: 'center'
  },
  distanceText: {
    color: textPrimary,
    fontSize: 12,
    paddingTop: 2
  },
  directIconView: {
    zIndex: 1,
    width: 32,
    height: 32,
    marginTop: 4,
    marginLeft: 16,
    borderRadius: 45,
    alignItems: 'center',
    justifyContent: 'center',
    backgroundColor: colorAccent
  },
})