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

import React from 'react'
import defineDebug from 'debug'
import NewsListItem from './news_list_item'
import { ApButton } from 'apeman-react-basic'
import { uniqueEntities } from 'ore-fol-helpers'

const debug = defineDebug('project:fragment:news-list')

/** @lends NewsList */
const NewsList = ({
  news,
  alt,
  hasMore,
  moreSpinning,
  moreText,
  onMore
}) => (
  <div className="news-list-container">
    <ul className='news-list'>
      {
        (news.length === 0) ? (
            <li className="news-list-alt">{ alt }</li>
          ) : (
            uniqueEntities(news).map((news) => (
              <NewsListItem key={ news.id }
                            news={ news }
              />
            )).filter(Boolean)
          )
      }
      {
        hasMore ? (
            <ApButton className='news-list-more-button'
                      onTap={ onMore }
                      spinning={ moreSpinning }
            >{ moreText }</ApButton>
          ) : null
      }
    </ul>
  </div>
)

export default NewsList
