Sha256: 26b2cf5264e36e0842b626560f5e73966a8a1f6fb6bc54b79d37291f9165d816

Contents?: true

Size: 1.59 KB

Versions: 43

Compression:

Stored size: 1.59 KB

Contents

/* @flow */

import React from 'react'
import { Avatar, Body, Caption } from '../'
import classnames from 'classnames'
import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
import { spacing } from '../utilities/spacing.js'

type MessageProps = {
  aria: object,
  avatarName?: String,
  avatarStatus?: String,
  avatarUrl?: String,
  className?: String,
  data?: object,
  id?: String,
  label?: String,
  message: String,
  timestamp?: String,
}

const Message = (props: MessageProps) => {
  const {
    aria = {},
    avatarName,
    avatarStatus = null,
    avatarUrl,
    className,
    data = {},
    id,
    label,
    message,
    timestamp,
  } = props
  const ariaProps = buildAriaProps(aria)
  const dataProps = buildDataProps(data)
  const shouldDisplayAvatar = avatarUrl || avatarName
  const baseClassName = shouldDisplayAvatar
    ? 'pb_message_kit_avatar'
    : 'pb_message_kit'

  const classes = classnames(buildCss(baseClassName), className, spacing(props))

  return (
    <div
        {...ariaProps}
        {...dataProps}
        className={classes}
        id={id}
    >
      <If condition={shouldDisplayAvatar}>
        <Avatar
            imageUrl={avatarUrl}
            name={avatarName}
            size="sm"
            status={avatarStatus}
        />
      </If>
      <div className="content_wrapper">
        <If condition={label}>
          <Caption>{label}</Caption>
        </If>
        <Body>{message}</Body>
        <If condition={timestamp}>
          <Caption size="xs">{timestamp}</Caption>
        </If>
      </div>
    </div>
  )
}

export default Message

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
playbook_ui-6.0.1.pre.alpha5 app/pb_kits/playbook/pb_message/_message.jsx
playbook_ui-6.0.1.pre.alpha4 app/pb_kits/playbook/pb_message/_message.jsx
playbook_ui-6.0.1.pre.alpha3 app/pb_kits/playbook/pb_message/_message.jsx
playbook_ui-6.0.1.pre.alpha2 app/pb_kits/playbook/pb_message/_message.jsx
playbook_ui-5.2.0.pre.alpha15 app/pb_kits/playbook/pb_message/_message.jsx
playbook_ui-5.2.0.pre.alpha14 app/pb_kits/playbook/pb_message/_message.jsx
playbook_ui-5.2.0.pre.alpha13 app/pb_kits/playbook/pb_message/_message.jsx
playbook_ui-6.0.1 app/pb_kits/playbook/pb_message/_message.jsx
playbook_ui-5.2.0.pre.alpha12 app/pb_kits/playbook/pb_message/_message.jsx
playbook_ui-6.0.0 app/pb_kits/playbook/pb_message/_message.jsx
playbook_ui-5.2.0.pre.alpha11 app/pb_kits/playbook/pb_message/_message.jsx
playbook_ui-5.5.1.pre.alpha4 app/pb_kits/playbook/pb_message/_message.jsx
playbook_ui-5.5.1.pre.alpha3 app/pb_kits/playbook/pb_message/_message.jsx
playbook_ui-5.5.1.pre.alpha2 app/pb_kits/playbook/pb_message/_message.jsx
playbook_ui-5.5.1.pre.alpha1 app/pb_kits/playbook/pb_message/_message.jsx
playbook_ui-5.2.0.pre.alpha10 app/pb_kits/playbook/pb_message/_message.jsx
playbook_ui-5.5.1 app/pb_kits/playbook/pb_message/_message.jsx
playbook_ui-5.5.0 app/pb_kits/playbook/pb_message/_message.jsx
playbook_ui-5.5.0.pre.alpha1 app/pb_kits/playbook/pb_message/_message.jsx
playbook_ui-5.2.0.pre.alpha9 app/pb_kits/playbook/pb_message/_message.jsx