diff --git a/app/soapbox/features/crypto_donate/index.js b/app/soapbox/features/crypto_donate/index.js deleted file mode 100644 index 693107c77..000000000 --- a/app/soapbox/features/crypto_donate/index.js +++ /dev/null @@ -1,63 +0,0 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import ImmutablePureComponent from 'react-immutable-pure-component'; -import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; -import { connect } from 'react-redux'; - -import { Column } from 'soapbox/components/ui'; -import Accordion from 'soapbox/features/ui/components/accordion'; - -import SiteWallet from './components/site_wallet'; - -const messages = defineMessages({ - heading: { id: 'column.crypto_donate', defaultMessage: 'Donate Cryptocurrency' }, -}); - -const mapStateToProps = state => ({ - siteTitle: state.getIn(['instance', 'title']), -}); - -export default @connect(mapStateToProps) -@injectIntl -class CryptoDonate extends ImmutablePureComponent { - - static propTypes = { - intl: PropTypes.object.isRequired, - }; - - state = { - explanationBoxExpanded: true, - } - - toggleExplanationBox = (setting) => { - this.setState({ explanationBoxExpanded: setting }); - } - - render() { - const { intl, siteTitle } = this.props; - const { explanationBoxExpanded } = this.state; - - return ( - -
-
- } - expanded={explanationBoxExpanded} - onToggle={this.toggleExplanationBox} - > - - - -
- -
-
- ); - } - -} diff --git a/app/soapbox/features/crypto_donate/index.tsx b/app/soapbox/features/crypto_donate/index.tsx new file mode 100644 index 000000000..86de895c9 --- /dev/null +++ b/app/soapbox/features/crypto_donate/index.tsx @@ -0,0 +1,42 @@ +import React, { useState } from 'react'; +import { defineMessages, useIntl, FormattedMessage } from 'react-intl'; + +import { Column } from 'soapbox/components/ui'; +import Accordion from 'soapbox/features/ui/components/accordion'; +import { useAppSelector } from 'soapbox/hooks'; + +import SiteWallet from './components/site_wallet'; + +const messages = defineMessages({ + heading: { id: 'column.crypto_donate', defaultMessage: 'Donate Cryptocurrency' }, +}); + +const CryptoDonate: React.FC = (): JSX.Element => { + const [explanationBoxExpanded, toggleExplanationBox] = useState(true); + const siteTitle = useAppSelector((state) => state.instance.title); + const intl = useIntl(); + + return ( + +
+
+ } + expanded={explanationBoxExpanded} + onToggle={toggleExplanationBox} + > + + + +
+ +
+
+ ); +}; + +export default CryptoDonate;