import PropTypes from 'prop-types'; import { PureComponent } from 'react'; import { connect } from 'react-redux'; import { changeComposing, mountCompose, unmountCompose } from 'mastodon/actions/compose'; import ServerBanner from 'mastodon/components/server_banner'; import ComposeFormContainer from 'mastodon/features/compose/containers/compose_form_container'; import NavigationContainer from 'mastodon/features/compose/containers/navigation_container'; import SearchContainer from 'mastodon/features/compose/containers/search_container'; import LinkFooter from './link_footer'; class ComposePanel extends PureComponent { static contextTypes = { identity: PropTypes.object.isRequired, }; static propTypes = { dispatch: PropTypes.func.isRequired, }; onFocus = () => { const { dispatch } = this.props; dispatch(changeComposing(true)); }; onBlur = () => { const { dispatch } = this.props; dispatch(changeComposing(false)); }; componentDidMount () { const { dispatch } = this.props; dispatch(mountCompose()); } componentWillUnmount () { const { dispatch } = this.props; dispatch(unmountCompose()); } render() { const { signedIn } = this.context.identity; return (