ConnectorInfo.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. import React from 'react';
  2. import { StyleSheet, View } from 'react-native';
  3. import DiscountView from './DiscountView';
  4. import TextView from '../../components/TextView';
  5. import { ChargeStyle } from '../chargeV2/Charging';
  6. import app from '../../../app.json';
  7. import utils from '../../utils/utils';
  8. export default ConnectorInfo = ({
  9. isCharging=false,
  10. connectorInfo={}
  11. }) => {
  12. return (
  13. isCharging
  14. ? <View>
  15. <View style={styles.infoRow}>
  16. <View style={styles.infoCard}>
  17. <TextView style={styles.infoTitle}>{$t('charging.labelTimeElapsed')}</TextView>
  18. <TextView
  19. numberOfLines={1}
  20. ellipsizeMode="tail"
  21. style={styles.infoText}>{utils.minutes2HHMM(connectorInfo?.timeElapsed ?? 0)}</TextView>
  22. <TextView style={styles.infoDesc}></TextView>
  23. </View>
  24. <View style={styles.infoCard}>
  25. <TextView style={styles.infoTitle}>{$t('charging.labelTotalkWh')}</TextView>
  26. <TextView
  27. numberOfLines={1}
  28. ellipsizeMode="tail"
  29. style={styles.infoText}>{connectorInfo.totalKWhDelivered || "0"} kWh</TextView>
  30. <TextView style={styles.infoDesc}></TextView>
  31. </View>
  32. </View>
  33. <View style={styles.infoRow}>
  34. <View style={styles.infoCard}>
  35. <DiscountView visible={connectorInfo.hasDiscount}/>
  36. <TextView style={styles.infoTitle}>{$t('charging.labelRate')}</TextView>
  37. <TextView
  38. numberOfLines={2}
  39. ellipsizeMode="tail"
  40. style={styles.infoText}>{connectorInfo.rates || "S$0.00/kWh"}</TextView>
  41. {(app.modules.nationally && connectorInfo.rates != connectorInfo.userRates) && (
  42. <TextView
  43. numberOfLines={1}
  44. ellipsizeMode="tail"
  45. style={styles.infoDesc}>({connectorInfo.userRates || "S$0.00/kWh"})</TextView>)
  46. }
  47. </View>
  48. <View style={styles.infoCard}>
  49. <TextView style={styles.infoTitle}>{$t('charging.labelTotalCharges')}</TextView>
  50. <TextView
  51. numberOfLines={2}
  52. ellipsizeMode="tail"
  53. style={styles.infoText}>{connectorInfo.totalCharges || "S$ 0.0"}</TextView>
  54. {(app.modules.nationally && connectorInfo.totalCharges != connectorInfo.userTotalCharges) && (
  55. <TextView
  56. numberOfLines={1}
  57. ellipsizeMode="tail"
  58. style={styles.infoDesc}>({connectorInfo.userTotalCharges || "S$ 0.0"})</TextView>)
  59. }
  60. </View>
  61. </View>
  62. </View>
  63. : <View>
  64. <View style={styles.infoRow}>
  65. <View style={styles.infoCard}>
  66. <TextView style={styles.infoTitle}>{$t('charging.labelType')}</TextView>
  67. <TextView
  68. numberOfLines={1}
  69. ellipsizeMode="tail"
  70. style={styles.infoText}>{connectorInfo.chargeType || "AC"}</TextView>
  71. <TextView style={styles.infoDesc}></TextView>
  72. </View>
  73. <View style={styles.infoCard}>
  74. <TextView style={styles.infoTitle}>{$t('charging.labelPower')}</TextView>
  75. <TextView
  76. numberOfLines={1}
  77. ellipsizeMode="tail"
  78. style={styles.infoText}>{connectorInfo.wattage || "0"} kW{/*connectorInfo.rateType*/}</TextView>
  79. <TextView style={styles.infoDesc}></TextView>
  80. </View>
  81. </View>
  82. <View style={styles.infoRow}>
  83. <View style={styles.infoCard}>
  84. <DiscountView visible={connectorInfo.hasDiscount}/>
  85. <TextView style={styles.infoTitle}>{$t('charging.labelRate')}</TextView>
  86. {/* <Text
  87. numberOfLines={1}
  88. ellipsizeMode="tail"
  89. style={styles.infoText}>{connectorInfo.rate || "0.00"}/{connectorInfo.rateType || "kWh"}</Text> */}
  90. <TextView
  91. numberOfLines={2}
  92. ellipsizeMode="tail"
  93. style={styles.infoText}>{connectorInfo.rates || "S$0.00/kWh"}</TextView>
  94. {(app.modules.nationally && connectorInfo.rates != connectorInfo.userRates) && (
  95. <TextView
  96. numberOfLines={1}
  97. ellipsizeMode="tail"
  98. style={styles.infoDesc}>({connectorInfo.userRates || "S$0.00/kWh"})</TextView>)
  99. }
  100. </View>
  101. <View style={styles.infoCard}>
  102. <TextView style={styles.infoTitle}>{$t('charging.labelStatus')}</TextView>
  103. <TextView
  104. style={[ChargeStyle.statusAuthenticated, styles.infoStatus]}>
  105. {/*$t('charging.statusAvailable')*/}
  106. {connectorInfo.status}
  107. </TextView>
  108. </View>
  109. </View>
  110. </View>
  111. )}
  112. const styles = StyleSheet.create({
  113. infoRow: {
  114. marginLeft: 24,
  115. marginBottom: 24,
  116. flexDirection: 'row'
  117. },
  118. infoCard: {
  119. flex: 1,
  120. paddingTop: 12,
  121. paddingBottom: 12,
  122. borderRadius: 10,
  123. marginRight: 32,
  124. overflow: 'hidden',
  125. alignItems: 'center',
  126. borderWidth: 1,
  127. borderColor: textCancel,
  128. //...ElevationObject(5),
  129. backgroundColor: colorLight,
  130. },
  131. infoTitle: {
  132. color: textPrimary,
  133. fontSize: 12,
  134. paddingTop: 1
  135. },
  136. infoText: {
  137. color: textPrimary,
  138. fontSize: 15,
  139. textAlign: 'center',
  140. fontWeight: 'bold',
  141. ...$padding(12, 6)
  142. },
  143. infoDesc: {
  144. color: textPrimary,
  145. fontSize: 12,
  146. marginTop: -12,
  147. paddingBottom: 8
  148. },
  149. infoStatus: {
  150. fontSize: 16,
  151. fontWeight: 'bold',
  152. ...$padding(16, 8)
  153. }
  154. })