commit: b6af88192ff48372c5f6ed1321f21d99aaffcd3f
parent: 1419f656e2753dc2f173d496a9720023d89de36e
Author: ThibG <thib@sitedethib.com>
Date: Tue, 2 Jan 2018 14:24:52 +0100
Display a warning when composing unlisted toots with something looking like a hashtag (#6132)
Diffstat:
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/app/javascript/mastodon/features/compose/containers/warning_container.js b/app/javascript/mastodon/features/compose/containers/warning_container.js
@@ -5,20 +5,27 @@ import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { me } from '../../../initial_state';
+const APPROX_HASHTAG_RE = /(?:^|[^\/\)\w])#(\S+)/i;
+
const mapStateToProps = state => ({
needsLockWarning: state.getIn(['compose', 'privacy']) === 'private' && !state.getIn(['accounts', me, 'locked']),
+ hashtagWarning: state.getIn(['compose', 'privacy']) !== 'public' && APPROX_HASHTAG_RE.test(state.getIn(['compose', 'text'])),
});
-const WarningWrapper = ({ needsLockWarning }) => {
+const WarningWrapper = ({ needsLockWarning, hashtagWarning }) => {
if (needsLockWarning) {
return <Warning message={<FormattedMessage id='compose_form.lock_disclaimer' defaultMessage='Your account is not {locked}. Anyone can follow you to view your follower-only posts.' values={{ locked: <a href='/settings/profile'><FormattedMessage id='compose_form.lock_disclaimer.lock' defaultMessage='locked' /></a> }} />} />;
}
+ if (hashtagWarning) {
+ return <Warning message={<FormattedMessage id='compose_form.hashtag_warning' defaultMessage="This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag." />} />;
+ }
return null;
};
WarningWrapper.propTypes = {
needsLockWarning: PropTypes.bool,
+ hashtagWarning: PropTypes.bool,
};
export default connect(mapStateToProps)(WarningWrapper);