import PropTypes from "prop-types"; import { PureComponent } from "react"; import { injectIntl, defineMessages } from "react-intl"; import classNames from "classnames"; import { Helmet } from "react-helmet"; import { connect } from "react-redux"; import spring from "react-motion/lib/spring"; import { mountCompose, unmountCompose, cycleElefriendCompose } from "flavours/glitch/actions/compose"; import Column from "flavours/glitch/components/column"; import { mascot } from "flavours/glitch/initial_state"; import Motion from "../ui/util/optional_motion"; import ComposeFormContainer from "./containers/compose_form_container"; import HeaderContainer from "./containers/header_container"; import NavigationContainer from "./containers/navigation_container"; import SearchContainer from "./containers/search_container"; import SearchResultsContainer from "./containers/search_results_container"; const messages = defineMessages({ compose: { id: "navigation_bar.compose", defaultMessage: "Compose new post" }, }); const mapStateToProps = (state, ownProps) => ({ elefriend: state.getIn(["compose", "elefriend"]), showSearch: ownProps.multiColumn ? state.getIn(["search", "submitted"]) && !state.getIn(["search", "hidden"]) : false, }); const mapDispatchToProps = (dispatch) => ({ onClickElefriend () { dispatch(cycleElefriendCompose()); }, onMount () { dispatch(mountCompose()); }, onUnmount () { dispatch(unmountCompose()); }, }); class Compose extends PureComponent { static propTypes = { multiColumn: PropTypes.bool, showSearch: PropTypes.bool, elefriend: PropTypes.number, onClickElefriend: PropTypes.func, onMount: PropTypes.func, onUnmount: PropTypes.func, intl: PropTypes.object.isRequired, }; componentDidMount () { this.props.onMount(); } componentWillUnmount () { this.props.onUnmount(); } render () { const { elefriend, intl, multiColumn, onClickElefriend, showSearch, } = this.props; const computedClass = classNames("drawer", `mbstobon-${elefriend}`); if (multiColumn) { return (
{multiColumn && }
{mascot ? :
{({ x }) => (
)}
); } return ( ); } } export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(Compose));