import React from 'react'; import PropTypes from 'prop-types'; import { defineMessages, injectIntl } from 'react-intl'; import ImmutablePropTypes from 'react-immutable-proptypes'; import ImmutablePureComponent from 'react-immutable-pure-component'; import ReactSwipeableViews from 'react-swipeable-views'; import { links, getIndex, getLink } from './tabs_bar'; import { Link } from 'react-router-dom'; import { me } from 'gabsocial/initial_state'; import BundleContainer from '../containers/bundle_container'; import ColumnLoading from './column_loading'; import DrawerLoading from './drawer_loading'; import BundleColumnError from './bundle_column_error'; import { Compose, Notifications, HomeTimeline, CommunityTimeline, HashtagTimeline, DirectTimeline, FavouritedStatuses, ListTimeline } from '../../ui/util/async-components'; import Icon from 'gabsocial/components/icon'; const messages = defineMessages({ publish: { id: 'compose_form.publish', defaultMessage: 'Gab' }, }); const shouldHideFAB = path => path.match(/^\/statuses\/|^\/search|^\/getting-started/); export default @(component => injectIntl(component, { withRef: true })) class ColumnsArea extends ImmutablePureComponent { static contextTypes = { router: PropTypes.object.isRequired, }; static propTypes = { intl: PropTypes.object.isRequired, columns: ImmutablePropTypes.list.isRequired, isModalOpen: PropTypes.bool.isRequired, children: PropTypes.node, layout: PropTypes.object, }; render () { const { columns, children, isModalOpen, intl, onOpenCompose } = this.props; const layout = this.props.layout || {LEFT:null,RIGHT:null}; const floatingActionButton = shouldHideFAB(this.context.router.history.location.pathname) ? null : ; return (
{layout.LEFT}
{children}
{layout.RIGHT}
{me && floatingActionButton}
) } }