import { Fragment } from 'react'
import ImmutablePropTypes from 'react-immutable-proptypes'
import ImmutablePureComponent from 'react-immutable-pure-component'
import { fetchGroup } from '../actions/groups'
import GroupInfoPanel from '../components/panel/group_info_panel'
import GroupLayout from '../layouts/group_layout'
import WhoToFollowPanel from '../components/panel/who_to_follow_panel'
import GroupSidebarPanel from '../components/panel/groups_panel'
import LinkFooter from '../components/link_footer'
import TimelineComposeBlock from '../components/timeline_compose_block'
import Divider from '../components/divider'

const mapStateToProps = (state, { params: { id } }) => ({
	group: state.getIn(['groups', id]),
	relationships: state.getIn(['group_relationships', id]),
})

export default
@connect(mapStateToProps)
class GroupPage extends ImmutablePureComponent {

	static propTypes = {
		group: ImmutablePropTypes.map,
		relationships: ImmutablePropTypes.map,
		dispatch: PropTypes.func.isRequired,
	}

	componentWillMount() {
		const { params: { id }, dispatch } = this.props

		dispatch(fetchGroup(id))
	}

	render() {
		const { children, group, relationships } = this.props

		// <div className="column-header__wrapper">
		// 	<h1 className="column-header">
		// 		<Link to={`/groups/${id}`} className={classNames('btn grouped active')}>
		// 			{intl.formatMessage(messages.tabLatest)}
		// 		</Link>

		// 		<div className='column-header__buttons'>
		// 			<button
		// 				className={classNames('column-header__button', { 'active': !collapsed })}
		// 				title={intl.formatMessage(collapsed ? messages.show : messages.hide)}
		// 				aria-label={intl.formatMessage(collapsed ? messages.show : messages.hide)}
		// 				aria-pressed={collapsed ? 'false' : 'true'}
		// 				onClick={this.handleToggleClick}
		// 			><Icon id='sliders' /></button>
		// 		</div>
		// 	</h1>
		// 	{!collapsed && <div className='column-header__collapsible'>
		// 		<div className='column-header__collapsible-inner'>
		// 			<div className='column-header__collapsible__extra'>
		// 				<ColumnSettingsContainer />
		// 			</div>
		// 		</div>
		// 	</div>}
		// </div>

		return (
			<GroupLayout
				group={group}
				relationships={relationships}
				actions={[
					{
						icon: 'ellipsis',
						onClick: null,
					},
				]}
				layout={(
					<Fragment>
						<GroupInfoPanel group={group} />
						<WhoToFollowPanel />
						<GroupSidebarPanel slim />
						<LinkFooter />
					</Fragment>
				)}
				showBackBtn
			>
				{
					!!relationships && relationships.get('member') &&
					<Fragment>
						<TimelineComposeBlock size={46} group={group} autoFocus />
						<Divider />
					</Fragment>
				}
				{children}
			</GroupLayout>
		)
	}
}