React = require 'react'


{div, ul, li, header, p} = React.DOM


Note = React.createClass

  displayName: 'Note'

  propTypes:
    className: React.PropTypes.string
    headerText: React.PropTypes.string
    values: React.PropTypes.oneOfType [
      React.PropTypes.string
      React.PropTypes.array
    ]

  getDefaultProps: ->
    className: ''
    headerText: ''

  render: ->
    {values, headerText, className, children} = @props
    noteItems = []

    if typeof values is 'object'
      for value, index in values
        noteItems.push li {
          key: index
        }, value

    div {
      className: "note #{className}"
    }, children or [
      header {
        key: 'header'
        className: 'notes-header'
      }, headerText if headerText
      ul {
        key: 'list'
        className: 'notes-list'
      }, noteItems if typeof values is 'object'
      p {
        key: 'note'
        className: 'notes-text'
      }, values if typeof values is 'string'
    ]


module.exports = Note