import React from "react";
import {connect} from "alt-react";
import BindToChainState from "../Utility/BindToChainState";
import GatewayStore from "stores/GatewayStore";
import TypeAhead from "../Utility/TypeAhead";
import AssetImage from "../Utility/AssetImage";
import AssetName from "../Utility/AssetName";
import counterpart from "counterpart";
class DepositWithdrawAssetSelector extends React.Component {
constructor(props) {
super(props);
}
render() {
const {props} = this;
const {include} = props;
let idMap = {};
let getCoinOption = item => {
/* Gateway Specific Settings */
let [gateway, backedCoin] = item.symbol.split(".");
// Return null if backedCoin is already stored
if (!idMap[backedCoin] && backedCoin && gateway) {
idMap[backedCoin] = true;
return {
id: backedCoin,
label: backedCoin,
labelSearch: backedCoin + item.name,
labelRender: (
({item.name})
),
gateway: gateway,
gateFee: item.gateFee,
issuer: item.issuerId || "1.2.96397" //Fall back to open ledger
};
} else {
return null;
}
};
let coinArr = [];
if (!(this.props.includeBTS === false)) {
coinArr.push({id: "BTS", label: "BTS", gateway: ""});
}
props.backedCoins.forEach(coin => {
coinArr = coinArr
.concat(coin.map(getCoinOption))
.filter(item => {
return item;
})
.filter(item => {
if (item.id == "BTS") return true;
if (include) {
return include.includes(item.id);
}
return true;
});
});
let coinItems = coinArr.sort(function(a, b) {
if (a.id && b.id) return a.id.localeCompare(b.id);
});
let i18n = props.placeholder
? props.placeholder
: props.usageContext == "withdraw"
? "gateway.asset_search_withdraw"
: "gateway.asset_search_deposit";
return (
);
}
}
DepositWithdrawAssetSelector = BindToChainState(DepositWithdrawAssetSelector);
export default connect(DepositWithdrawAssetSelector, {
listenTo() {
return [GatewayStore];
},
getProps() {
return {
backedCoins: GatewayStore.getState().backedCoins
};
}
});