import React from 'react'; import { connect } from 'react-redux'; import { injectIntl } from 'react-intl'; import ImmutablePureComponent from 'react-immutable-pure-component'; import ProgressBar from '../../../components/progress_bar'; import { fetchFunding } from 'soapbox/actions/patron'; const moneyFormat = amount => ( new Intl .NumberFormat('en-US', { style: 'currency', currency: 'usd', notation: 'compact', }) .format(amount/100) ); class FundingPanel extends ImmutablePureComponent { componentDidMount() { this.props.dispatch(fetchFunding()); } render() { const { funding, patronUrl } = this.props; if (!funding) { return null; } const amount = funding.getIn(['funding', 'amount']); const goal = funding.getIn(['goals', '0', 'amount']); const goal_text = funding.getIn(['goals', '0', 'text']); const goal_reached = amount >= goal; let ratio_text; if (goal_reached) { ratio_text = <>{moneyFormat(goal)} per month— reached!>; } else { ratio_text = <>{moneyFormat(amount)} out of {moneyFormat(goal)} per month>; } return (