Sha256: c72352c0207d0a73fba9276e118991a55518d77ec815a8126b83b0045cb3bc99

Contents?: true

Size: 1.69 KB

Versions: 14

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 %>'), globalProps(props), className)

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

export default <%= @kit_name_pascal %>

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
playbook_ui-7.1.0.pre.alpha2 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-7.0.1 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-7.1.0 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-7.0.1.pre.alpha15 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-6.8.2.pre.alpha1 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-7.0.0.pre.alpha15 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-7.0.1.pre.alpha14 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-7.0.0.pre.alpha14 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-7.0.0.pre.alpha13 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-7.0.0.pre.alpha12 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-7.0.0 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-7.0.0.pre.alpha11 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-6.8.1 lib/generators/kit/templates/kit_jsx.erb.tt
playbook_ui-6.8.0 lib/generators/kit/templates/kit_jsx.erb.tt