Sha256: 3ef4632aaad4c43e897d37f5962227d3f7581c997897cfc087fb474971f3985d

Contents?: true

Size: 1.69 KB

Versions: 37

Compression:

Stored size: 1.69 KB

Contents

<%
break_lines = lambda do |list, spaces = 2, separator = ","|
  list.join("#{separator}\n#{" " * spaces}") + separator
end

type_name = "#{@kit_name_pascal}Props"

props_types = @kit_props.map do |key, val|
  prop_name = key == "classname" ? "className" : key.camelize(:lower)
  prop_type = case val
              when "enum", "one_of" then "'option_1' | 'option_2'"
              when "boolean", "bool" then "boolean"
              when "object", "obj" then "object"
              else "string"
              end

  "#{prop_name}?: #{prop_type}"
end
puts props_types.inspect

props_names = @kit_props.keys.map do |key|
                  case key
                  when "classname" || "className"
                    "className" 
                  when "aria"
                    "aria = {}"
                  when "data"
                    "data = {}"
                  else 
                    key
                  end
              end

%>

/* @flow */

import React from 'react'
import classnames from 'classnames'
import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
import { globalProps } from '../utilities/globalProps.js'

type <%= type_name %> = {
  <%= break_lines.call(props_types) %>
}

const <%= @kit_name_pascal %> = (props: <%= type_name %>) => {
  const {
    <%= break_lines.call(props_names) %>
  } = props

  const ariaProps = buildAriaProps(aria)
  const dataProps = buildDataProps(data)
  const classes = classnames(buildCss('pb_<%= @kit_name_underscore %>'), className, globalProps(props))

  return (
    <div
        {...ariaProps}
        {...dataProps}
        className={classes}
        id={id}
    >
      {className}
    </div>
  )
}

export default <%= @kit_name_pascal %>

Version data entries

37 entries across 37 versions & 1 rubygems

Version Path
playbook_ui-7.3.0.pre.alpha2 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-6.7.0.pre.alpha1 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-6.7.0 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-6.6.1 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-7.0.0.pre.alpha10 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-6.6.0 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-6.5.2 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-7.0.1.pre.alpha12 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-7.0.1.pre.alpha11 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-7.0.1.pre.alpha10 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-7.0.1.pre.alpha9 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-6.5.1 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-6.5.0 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-7.0.1.pre.alpha8 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-7.0.1.pre.alpha7 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-7.0.1.pre.alpha6 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-7.0.1.pre.alpha5 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-7.0.1.pre.alpha4 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-7.0.1.pre.alpha3 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-7.0.1.pre.alpha2 lib/generators/kit/templates/kit_jsx.erb.tt