Display CryptoDonatePanel, convert to tsx
This commit is contained in:
parent
f656009459
commit
999f518f10
3 changed files with 55 additions and 0 deletions
Binary file not shown.
|
@ -0,0 +1,55 @@
|
||||||
|
import classNames from 'classnames';
|
||||||
|
import React from 'react';
|
||||||
|
import { FormattedMessage } from 'react-intl';
|
||||||
|
import { Link } from 'react-router-dom';
|
||||||
|
|
||||||
|
import Icon from 'soapbox/components/icon';
|
||||||
|
import { useAppSelector, useSoapboxConfig } from 'soapbox/hooks';
|
||||||
|
|
||||||
|
import SiteWallet from './site_wallet';
|
||||||
|
|
||||||
|
interface ICryptoDonatePanel {
|
||||||
|
limit: number,
|
||||||
|
}
|
||||||
|
|
||||||
|
const CryptoDonatePanel: React.FC<ICryptoDonatePanel> = ({ limit = 3 }): JSX.Element | null => {
|
||||||
|
const addresses = useSoapboxConfig().get('cryptoAddresses');
|
||||||
|
const siteTitle = useAppSelector((state) => state.instance.title);
|
||||||
|
|
||||||
|
if (limit === 0 || addresses.size === 0) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
const more = addresses.size - limit;
|
||||||
|
const hasMore = more > 0;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className={classNames('wtf-panel funding-panel crypto-donate-panel', { 'crypto-donate-panel--has-more': hasMore })}>
|
||||||
|
<div className='wtf-panel-header'>
|
||||||
|
<Icon src={require('@tabler/icons/icons/currency-bitcoin.svg')} className='wtf-panel-header__icon' />
|
||||||
|
<span className='wtf-panel-header__label'>
|
||||||
|
<span><FormattedMessage id='crypto_donate_panel.heading' defaultMessage='Donate Cryptocurrency' /></span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div className='wtf-panel__content'>
|
||||||
|
<div className='crypto-donate-panel__message'>
|
||||||
|
<FormattedMessage
|
||||||
|
id='crypto_donate_panel.intro.message'
|
||||||
|
defaultMessage='{siteTitle} accepts cryptocurrency donations to fund our service. Thank you for your support!'
|
||||||
|
values={{ siteTitle }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<SiteWallet limit={limit} />
|
||||||
|
</div>
|
||||||
|
{hasMore && <Link className='wtf-panel__expand-btn' to='/donate/crypto'>
|
||||||
|
<FormattedMessage
|
||||||
|
id='crypto_donate_panel.actions.more'
|
||||||
|
defaultMessage='Click to see {count} more {count, plural, one {wallet} other {wallets}}'
|
||||||
|
values={{ count: more }}
|
||||||
|
/>
|
||||||
|
</Link>}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default CryptoDonatePanel;
|
Binary file not shown.
Loading…
Reference in a new issue