import React from 'react'; import ImmutablePureComponent from 'react-immutable-pure-component'; import { connect } from 'react-redux'; import { Link } from 'react-router-dom'; import Sticky from 'react-stickynode'; import { getSoapboxConfig } from 'soapbox/actions/soapbox'; import PrimaryNavigation from 'soapbox/components/primary_navigation'; import LinkFooter from 'soapbox/features/ui/components/link_footer'; import { WhoToFollowPanel, CryptoDonatePanel, // UserPanel, TrendsPanel, PromoPanel, FundingPanel, FeaturesPanel, SignUpPanel, } from 'soapbox/features/ui/util/async-components'; // import GroupSidebarPanel from '../features/groups/sidebar_panel'; import { getFeatures } from 'soapbox/utils/features'; import Avatar from '../components/avatar'; import ComposeFormContainer from '../features/compose/containers/compose_form_container'; import BundleContainer from '../features/ui/containers/bundle_container'; 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 (
{me &&
} {children}
{me ? ( {Component => } ) : ( {Component => } )} {Component => } {showFundingPanel && ( {Component => } )} {showCryptoDonatePanel && ( {Component => } )} {showTrendsPanel && ( {Component => } )} {showWhoToFollowPanel && ( {Component => } )}
); } }