import React from 'react'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import ImmutablePureComponent from 'react-immutable-pure-component'; import StatusContent from 'flavours/glitch/components/status_content'; import Avatar from 'flavours/glitch/components/avatar'; import RelativeTimestamp from 'flavours/glitch/components/relative_timestamp'; import DisplayName from 'flavours/glitch/components/display_name'; import classNames from 'classnames'; import Icon from 'flavours/glitch/components/icon'; import Link from 'flavours/glitch/components/link'; import Toggle from 'react-toggle'; export default class ActionsModal extends ImmutablePureComponent { static propTypes = { status: ImmutablePropTypes.map, actions: PropTypes.arrayOf(PropTypes.shape({ active: PropTypes.bool, href: PropTypes.string, icon: PropTypes.string, meta: PropTypes.node, name: PropTypes.string, on: PropTypes.bool, onPassiveClick: PropTypes.func, text: PropTypes.node, })), }; renderAction = (action, i) => { if (action === null) { return
  • ; } const { active, href, icon, meta, name, on, onClick, onPassiveClick, text, } = action; return (
  • {function () { // We render a `` if we were provided an `on` // property, and otherwise show an `` if available. switch (true) { case on !== null && typeof on !== 'undefined': return ( ); case !!icon: return ( ); default: return null; } }()} {meta ? (
    {text} {meta}
    ) :
    {text}
    }
  • ); } render () { const status = this.props.status && (
    ); return (
    {status}
    ); } }