2022-03-29 23:16:59 +00:00
|
|
|
import React, { Component } from 'react'
|
2022-04-17 20:33:43 +00:00
|
|
|
import { withTranslation } from "react-i18next";
|
|
|
|
import PaymentIcon from './payment-methods/Icons'
|
2022-03-30 14:26:13 +00:00
|
|
|
import {Tooltip} from "@mui/material"
|
2022-04-17 20:33:43 +00:00
|
|
|
import { paymentMethods, swapDestinations } from "./payment-methods/Methods";
|
2022-03-29 23:16:59 +00:00
|
|
|
|
2022-04-17 20:33:43 +00:00
|
|
|
const ns = [{name: "not specified",icon:'notspecified'}];
|
|
|
|
const methods = ns.concat(swapDestinations).concat(paymentMethods);
|
2022-03-29 23:16:59 +00:00
|
|
|
|
2022-04-17 19:14:22 +00:00
|
|
|
class PaymentText extends Component {
|
2022-03-29 23:16:59 +00:00
|
|
|
constructor(props) {
|
|
|
|
super(props);
|
|
|
|
}
|
2022-03-30 14:26:13 +00:00
|
|
|
|
|
|
|
parseText(){
|
2022-04-17 19:14:22 +00:00
|
|
|
const { t } = this.props;
|
2022-03-30 14:26:13 +00:00
|
|
|
var rows = [];
|
|
|
|
var custom_methods = this.props.text;
|
|
|
|
// Adds icons for each PaymentMethod that matches
|
2022-04-17 20:33:43 +00:00
|
|
|
methods.forEach((method, i) =>{
|
2022-03-30 14:26:13 +00:00
|
|
|
if(this.props.text.includes(method.name)){
|
|
|
|
custom_methods = custom_methods.replace(method.name,'')
|
|
|
|
rows.push(
|
2022-05-02 19:28:34 +00:00
|
|
|
<Tooltip key={`${method.name}-${i}`} placement="top" enterTouchDelay={0} title={t(method.name)}>
|
2022-03-30 20:01:26 +00:00
|
|
|
<div style={{display: 'inline-block', width: this.props.size+2, height: this.props.size}}>
|
2022-03-30 14:26:13 +00:00
|
|
|
<PaymentIcon width={this.props.size} height={this.props.size} icon={method.icon}/>
|
|
|
|
</div>
|
|
|
|
</Tooltip>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
// Adds a Custom icon if there are words that do not match
|
2022-04-10 12:28:10 +00:00
|
|
|
var chars_left = custom_methods.replace(' ','').replace(' ','').replace(' ','').replace(' ','').replace(' ','')
|
2022-05-02 19:28:34 +00:00
|
|
|
|
2022-03-31 09:45:45 +00:00
|
|
|
if(chars_left.length > 0){rows.push(
|
2022-05-02 19:28:34 +00:00
|
|
|
<Tooltip key={"pushed"} placement="top" enterTouchDelay={0} title={this.props.verbose ? this.props.othersText: this.props.othersText+": "+ custom_methods} >
|
2022-03-31 11:22:25 +00:00
|
|
|
<div style={{position:'relative', display: 'inline-block',width: this.props.size+2, maxHeight: this.props.size, top:'-1px'}}>
|
2022-03-30 14:26:13 +00:00
|
|
|
<PaymentIcon width={this.props.size*1.1} height={this.props.size*1.1} icon={"custom"}/>
|
|
|
|
</div>
|
|
|
|
</Tooltip>
|
|
|
|
)}
|
|
|
|
|
|
|
|
if(this.props.verbose){
|
2022-03-31 11:22:25 +00:00
|
|
|
return (<>{rows} <div style={{display: 'inline-block'}}> <span>{custom_methods}</span></div></>)
|
2022-03-30 14:26:13 +00:00
|
|
|
}else{
|
|
|
|
return rows
|
|
|
|
}
|
|
|
|
}
|
2022-03-29 23:16:59 +00:00
|
|
|
|
|
|
|
render() {
|
2022-05-02 19:28:34 +00:00
|
|
|
return (
|
2022-03-31 11:22:25 +00:00
|
|
|
<div style={{display:'flex',alignItems:'center', flexWrap:'wrap'}}>
|
2022-03-30 20:01:26 +00:00
|
|
|
{this.parseText()}
|
|
|
|
</div>
|
2022-03-29 23:16:59 +00:00
|
|
|
)
|
|
|
|
}
|
2022-05-02 19:28:34 +00:00
|
|
|
}
|
2022-04-17 19:14:22 +00:00
|
|
|
|
2022-05-02 19:28:34 +00:00
|
|
|
export default withTranslation()(PaymentText);
|