Payment.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import React, { Component, useEffect, useState } from 'react';
  2. import { View, Text, StyleSheet } from 'react-native';
  3. import BadgeSelectItem from '../../components/BadgeSelectItem';
  4. import TextView from '../../components/TextView';
  5. import { getPaymenOptions, PaymentIcon, PAYTYPE } from '../payment/PaymentConfig';
  6. import { ChargeStyle } from './Charging';
  7. export const PaymentList = ({isSelect=true, payType, onMethodChange}) => {
  8. const [options, setOptions] = useState([])
  9. useEffect(() => {
  10. getPaymenOptions(options => {
  11. setOptions(options)
  12. })
  13. }, [])
  14. return (
  15. options.map((item, index) => {
  16. if (isSelect || payType==item.value) {
  17. return (
  18. <BadgeSelectItem
  19. key={index}
  20. style={ChargeStyle.stationInfoView}
  21. checked={payType==item.value}
  22. onPress={() => {
  23. if (onMethodChange) {
  24. onMethodChange(item.value);
  25. }
  26. }}>
  27. <PaymentIcon
  28. method={item.iconFont}
  29. checked={payType==item.value}/>
  30. <View style={styles.paymentView}>
  31. <TextView style={styles.valueText}>{item.value == PAYTYPE.CREDIT_WALLET ? ("" + userInfo?.creditStr) : item.desc}</TextView>
  32. <TextView style={styles.paymentText}>{item.title}</TextView>
  33. </View>
  34. </BadgeSelectItem>
  35. )
  36. } else {
  37. return null
  38. }
  39. })
  40. )
  41. }
  42. const styles = StyleSheet.create({
  43. paymentView: {
  44. flex: 1,
  45. alignItems: 'center',
  46. flexDirection: 'row-reverse',
  47. justifyContent: 'flex-end'
  48. },
  49. valueText: {
  50. color: textPrimary,
  51. fontSize: 16,
  52. fontWeight: 'bold'
  53. },
  54. paymentText: {
  55. color: textSecondary,
  56. fontSize: 12,
  57. paddingLeft: 8,
  58. paddingRight: 16
  59. }
  60. })