Refactor Compose*Warning → ContainerWarning
Regression: only one warning at a time
This commit is contained in:
@@ -4,8 +4,6 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||
import { defineMessages, injectIntl } from 'react-intl';
|
||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||
|
||||
const APPROX_HASHTAG_RE = /(?:^|[^\/\)\w])#(\S+)/i;
|
||||
|
||||
// Components.
|
||||
import ComposerOptions from '../../composer/options';
|
||||
import ComposerPublisher from '../../composer/publisher';
|
||||
@@ -14,9 +12,7 @@ import ComposerSpoiler from '../../composer/spoiler';
|
||||
import ComposerTextarea from '../../composer/textarea';
|
||||
import ComposerUploadForm from '../../composer/upload_form';
|
||||
import ComposerPollForm from '../../composer/poll_form';
|
||||
import ComposerWarning from '../../composer/warning';
|
||||
import ComposerHashtagWarning from '../../composer/hashtag_warning';
|
||||
import ComposerDirectWarning from '../../composer/direct_warning';
|
||||
import WarningContainer from '../containers/warning_container';
|
||||
|
||||
// Utils.
|
||||
import { countableText } from 'flavours/glitch/util/counter';
|
||||
@@ -321,9 +317,8 @@ class ComposeForm extends ImmutablePureComponent {
|
||||
|
||||
return (
|
||||
<div className='composer'>
|
||||
{privacy === 'direct' ? <ComposerDirectWarning /> : null}
|
||||
{privacy === 'private' && amUnlocked ? <ComposerWarning /> : null}
|
||||
{privacy !== 'public' && APPROX_HASHTAG_RE.test(text) ? <ComposerHashtagWarning /> : null}
|
||||
<WarningContainer />
|
||||
|
||||
{inReplyTo && (
|
||||
<ComposerReply
|
||||
status={inReplyTo}
|
||||
@@ -331,6 +326,7 @@ class ComposeForm extends ImmutablePureComponent {
|
||||
onCancel={onCancelReply}
|
||||
/>
|
||||
)}
|
||||
|
||||
<ComposerSpoiler
|
||||
hidden={!spoiler}
|
||||
intl={intl}
|
||||
@@ -340,6 +336,7 @@ class ComposeForm extends ImmutablePureComponent {
|
||||
text={spoilerText}
|
||||
ref={handleRefSpoilerText}
|
||||
/>
|
||||
|
||||
<ComposerTextarea
|
||||
advancedOptions={advancedOptions}
|
||||
autoFocus={!showSearch && !isMobile(window.innerWidth, layout)}
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import Motion from 'flavours/glitch/util/optional_motion';
|
||||
import spring from 'react-motion/lib/spring';
|
||||
|
||||
export default class Warning extends React.PureComponent {
|
||||
|
||||
static propTypes = {
|
||||
message: PropTypes.node.isRequired,
|
||||
};
|
||||
|
||||
render () {
|
||||
const { message } = this.props;
|
||||
|
||||
return (
|
||||
<Motion defaultStyle={{ opacity: 0, scaleX: 0.85, scaleY: 0.75 }} style={{ opacity: spring(1, { damping: 35, stiffness: 400 }), scaleX: spring(1, { damping: 35, stiffness: 400 }), scaleY: spring(1, { damping: 35, stiffness: 400 }) }}>
|
||||
{({ opacity, scaleX, scaleY }) => (
|
||||
<div className='composer--warning' style={{ opacity: opacity, transform: `scale(${scaleX}, ${scaleY})` }}>
|
||||
{message}
|
||||
</div>
|
||||
)}
|
||||
</Motion>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user