// Package imports. import classNames from 'classnames'; import PropTypes from 'prop-types'; import React from 'react'; import { defineMessages, FormattedMessage, } from 'react-intl'; import { length } from 'stringz'; // Components. import Button from 'flavours/glitch/components/button'; import Icon from 'flavours/glitch/components/icon'; // Utils. import { maxChars } from 'flavours/glitch/util/initial_state'; // Messages. const messages = defineMessages({ publish: { defaultMessage: 'Toot', id: 'compose_form.publish', }, publishLoud: { defaultMessage: '{publish}!', id: 'compose_form.publish_loud', }, }); // The component. export default function ComposerPublisher ({ countText, disabled, intl, onSecondarySubmit, onSubmit, privacy, sideArm, }) { const diff = maxChars - length(countText || ''); const computedClass = classNames('composer--publisher', { disabled: disabled || diff < 0, over: diff < 0, }); // The result. return (
{diff} {sideArm && sideArm !== 'none' ? (
); } // Props. ComposerPublisher.propTypes = { countText: PropTypes.string, disabled: PropTypes.bool, intl: PropTypes.object.isRequired, onSecondarySubmit: PropTypes.func, onSubmit: PropTypes.func, privacy: PropTypes.oneOf(['direct', 'private', 'unlisted', 'public']), sideArm: PropTypes.oneOf(['none', 'direct', 'private', 'unlisted', 'public']), };