Sha256: 0b8f27c970b0cfcc300a81c6f43fa88949ac612e59772b8a070997bae0e00933

Contents?: true

Size: 871 Bytes

Versions: 3

Compression:

Stored size: 871 Bytes

Contents

# <Icon type="Foundation" icon="cog" className="left" />
Rev.registerComponent 'Icon',
  statics:
    Adapters:
      FontAwesome: (icon) -> "fa fa-#{icon}"
      IconMoon: (icon) -> "icon-#{icon}"
      Foundation: (icon) -> "fi-#{icon}"

    typeToAdapter: (type) ->
      adapter = @Adapters[type]
      throw new Error("Invalid Icon type `#{type}`") unless adapter
      adapter

    defaultType: "IconMoon"

  propTypes:
    icon: React.PropTypes.string
    type: React.PropTypes.string

  getDefaultProps: ->
    type: @defaultType

  getAdapterClassName: ->
    @constructor.typeToAdapter(@props.type)(@props.icon)

  render: ->
    classNameObject =
      RevIcon: true

    classNameObject["RevIcon-#{@props.icon}"] = true
    classNameObject[@getAdapterClassName()] = true

    className = @classAdd classNameObject

    <i {...@props} className={className} />

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
revelry_core-0.1.11.6 app/assets/javascripts/revelry/ui/icons/Icon.js.cjsx
revelry_core-0.1.11.5 app/assets/javascripts/revelry/ui/icons/Icon.js.cjsx
revelry_core-0.1.11.2 app/assets/javascripts/revelry/ui/icons/Icon.js.cjsx