/**
 * PostBannedBlocker component
 *
 * Generated by coz on 2017-01-04,
 * from a template provided by apeman-asset-templates.
 *
 * @function PostBannedBlocker
 */
'use strict'

import React from 'react'
import defineDebug from 'debug'
import classnames from 'classnames'
import { ApButton } from 'apeman-react-basic'
import { IconClasses } from 'ore-fol-enums'
import { BanPutterTypeCodes } from 'ore-fol-codes'
import { asLocaled, combine } from '../../wrappers'

const { BAN_ICON } = IconClasses

const debug = defineDebug('project:fragment:post-banned-blocker')

const banMessage = ({ l, putterType }) => {
  switch (putterType) {
    case BanPutterTypeCodes.THREAD_OWNER:
      return l('messages.BANNED_BY_THREAD_OWNER')
    case BanPutterTypeCodes.SYSTEM_OPERATOR:
      return l('messages.BANNED_BY_SYSTEM_OPERATOR')
    default:
      return l('messages.BANNED')
  }
}

/** @lends PostBannedBlocker */
const PostBannedBlocker = ({ l, bannable, onBan, post }) => (
  <div className='post-banned-blocker'>
    <p className='blocker-message'>
      { banMessage(post.ban) }
    </p>
    <i className={ classnames('post-banned-blocker-icon', BAN_ICON) }/>
    <br/>
    {
      bannable ? (
          <ApButton onTap={ () => onBan(post) }>
            { l('buttons.SHOW_UNBAN') }
          </ApButton>
        ) : null
    }
  </div>
)

export default combine(
  asLocaled.proxy()
)(PostBannedBlocker)
