import React from 'react'; import ImmutablePureComponent from 'react-immutable-pure-component'; import { connect } from 'react-redux'; import { Link } from 'react-router-dom'; import { getSoapboxConfig } from 'soapbox/actions/soapbox'; import SidebarNavigation from 'soapbox/components/sidebar-navigation'; import LinkFooter from 'soapbox/features/ui/components/link_footer'; import { WhoToFollowPanel, TrendsPanel, SignUpPanel, PromoPanel, CryptoDonatePanel, BirthdayPanel, } 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 { Card, CardBody, Layout } from '../components/ui'; 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, hasCrypto, cryptoLimit, features, }; }; export default @connect(mapStateToProps) class HomePage extends ImmutablePureComponent { constructor(props) { super(props); this.composeBlock = React.createRef(); } render() { const { me, children, account, features, hasCrypto, cryptoLimit } = this.props; const acct = account ? account.get('acct') : ''; return ( {me &&
} {children}
{!me && ( {Component => } )} {features.trends && ( {Component => } )} {hasCrypto && cryptoLimit > 0 && ( {Component => } )} {Component => } {features.birthdays && ( {Component => } )} {features.suggestions && ( {Component => } )}
); } }