import React from 'react'; import { connect } from 'react-redux'; import { Link } from 'react-router-dom'; import ImmutablePureComponent from 'react-immutable-pure-component'; import BundleContainer from '../features/ui/containers/bundle_container'; import ComposeFormContainer from '../features/compose/containers/compose_form_container'; import Avatar from '../components/avatar'; import PrimaryNavigation from 'soapbox/components/primary_navigation'; import { WhoToFollowPanel, CryptoDonatePanel, // UserPanel, TrendsPanel, PromoPanel, FundingPanel, FeaturesPanel, SignUpPanel, } from 'soapbox/features/ui/util/async-components'; // import GroupSidebarPanel from '../features/groups/sidebar_panel'; import LinkFooter from 'soapbox/features/ui/components/link_footer'; import { getSoapboxConfig } from 'soapbox/actions/soapbox'; import { getFeatures } from 'soapbox/utils/features'; const mapStateToProps = state => { const me = state.get('me'); const soapbox = getSoapboxConfig(state); const hasPatron = soapbox.getIn(['extensions', 'patron', 'enabled']); const hasCrypto = typeof soapbox.getIn(['cryptoAddresses', 0, 'ticker']) === 'string'; const cryptoLimit = soapbox.getIn(['cryptoDonatePanel', 'limit']); const features = getFeatures(state.get('instance')); return { me, account: state.getIn(['accounts', me]), showFundingPanel: hasPatron, showCryptoDonatePanel: hasCrypto && cryptoLimit > 0, cryptoLimit, showTrendsPanel: features.trends, showWhoToFollowPanel: features.suggestions, }; }; export default @connect(mapStateToProps) class HomePage extends ImmutablePureComponent { constructor(props) { super(props); this.composeBlock = React.createRef(); } render() { const { me, children, account, showFundingPanel, showCryptoDonatePanel, cryptoLimit, showTrendsPanel, showWhoToFollowPanel } = this.props; const acct = account ? account.get('acct') : ''; return (