import { View, Text, Pressable, ActivityIndicator, Platform, } from "react-native"; import React, { useEffect, useCallback } from "react"; import { connect } from "react-redux"; import { transport } from "../../../redux/actions"; import separate from "../../../utils/separate"; //style import tw from "tailwind-rn"; import Colors from "../../../constants/Colors"; import fontSize from "../../../constants/fontSize"; const ios = Platform.OS === "ios"; const TransportMethod = ({ list, getList, setTransport, factorInfo, userId, loading, mobile, theme, }) => { useEffect(() => { getList(); }, []); const [selectedItem, setSelectedItem] = React.useState(null); const light = React.useMemo(() => { return theme === "light"; }, [theme]); React.useEffect(() => { if (!loading) { setSelectedItem(null); } }, [loading]); const Method = useCallback( ({ method, active }) => { return ( { setSelectedItem(method.id); !active ? setTransport( { factorId: factorInfo?.id, transportId: method?.id }, { userId }, {} ) : {}; }} > {loading && selectedItem === method.id ? ( ) : ( {method.name} )} {separate(method.price) + " " + "تومان"} ); }, [factorInfo, loading] ); return ( لطفا یک روش ارسال انتخاب کنید. {factorInfo?.transports?.map((method, index) => ( ))} ); }; const mapStateToProps = (state) => ({ list: state.transport.list, factorInfo: state.userFactor.info, userId: state.user.status?.id, loading: state.userFactor.loading, mobile: state.publicApi.mobile, theme: state.publicApi.theme, }); const mapDispatchToProps = { getList: transport.list, setTransport: transport.set, }; export default connect(mapStateToProps, mapDispatchToProps)(TransportMethod);