Sha256: c6d6aac2baf1a6377d7b459e29827e131e06bc974446217c213b5663ae88dff1

Contents?: true

Size: 1.51 KB

Versions: 12

Compression:

Stored size: 1.51 KB

Contents

/* @flow */

import React from 'react'
import classnames from 'classnames'
import { Body, Caption } from '../'
import type { InputCallback } from '../types.js'

type TextareaProps = {
  className?: String,
  children?: Array<React.ReactChild>,
  data?: String,
  error?: String,
  id?: String,
  object?: String,
  method?: String,
  label?: String,
  placeholder?: String,
  value?: String,
  name?: String,
  rows?: Number,
  dark?: Boolean,
  resize: 'none' | 'both' | 'horizontal' | 'vertical',
  onChange?: InputCallback<HTMLTextAreaElement>,
}

const Textarea = ({
  className,
  children,
  dark = false,
  resize = 'none',
  error,
  label,
  name,
  onChange = () => {},
  placeholder,
  rows = 4,
  value,
}: TextareaProps) => {
  const textareaClass = `pb_textarea_kit${dark ? '_dark' : ''}`
  const errorClass = error ? 'error' : null
  const resizeClass = ` resize_${resize}`

  return (
    <div className={classnames(textareaClass, className, errorClass, resizeClass)}>
      <Caption
          dark={dark}
          text={label}
      />
      <If condition={children}>
        {children}
        <Else />
        <textarea
            className={textareaClass}
            name={name}
            onChange={onChange}
            placeholder={placeholder}
            rows={rows}
            value={value}
        />
        <If condition={error}>
          <Body
              dark={dark}
              status="negative"
              text={error}
          />
        </If>
      </If>
    </div>
  )
}

export default Textarea

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
playbook_ui-4.13.1 app/pb_kits/playbook/pb_textarea/_textarea.jsx
playbook_ui-4.13.0 app/pb_kits/playbook/pb_textarea/_textarea.jsx
playbook_ui-4.12.0 app/pb_kits/playbook/pb_textarea/_textarea.jsx
playbook_ui-4.11.0 app/pb_kits/playbook/pb_textarea/_textarea.jsx
playbook_ui-4.11.0.pre.alpha3 app/pb_kits/playbook/pb_textarea/_textarea.jsx
playbook_ui-4.11.0.pre.alpha.pre.2 app/pb_kits/playbook/pb_textarea/_textarea.jsx
playbook_ui-4.10.0 app/pb_kits/playbook/pb_textarea/_textarea.jsx
playbook_ui-4.10.0.pre.alpha1 app/pb_kits/playbook/pb_textarea/_textarea.jsx
playbook_ui-4.9.0.pre.alpha1 app/pb_kits/playbook/pb_textarea/_textarea.jsx
playbook_ui-4.9.0 app/pb_kits/playbook/pb_textarea/_textarea.jsx
playbook_ui-4.8.2 app/pb_kits/playbook/pb_textarea/_textarea.jsx
playbook_ui-4.8.1 app/pb_kits/playbook/pb_textarea/_textarea.jsx