Add local only statuses

This commit is contained in:
Sean King 2021-03-20 21:03:10 -06:00
parent 3361326311
commit 5e18d80a94
No known key found for this signature in database
GPG key ID: 510C52BACD6E7257
3 changed files with 8 additions and 2 deletions

View file

@ -347,7 +347,7 @@ class StatusActionBar extends ImmutablePureComponent {
const { status, intl, allowedEmoji } = this.props;
const { emojiSelectorVisible } = this.state;
const publicStatus = ['public', 'unlisted'].includes(status.get('visibility'));
const publicStatus = ['public', 'local', 'unlisted'].includes(status.get('visibility'));
const replyCount = status.get('replies_count');
const reblogCount = status.get('reblogs_count');

View file

@ -1,5 +1,6 @@
import React from 'react';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import { injectIntl, defineMessages } from 'react-intl';
import IconButton from '../../../components/icon_button';
import Overlay from 'react-overlays/lib/Overlay';
@ -12,6 +13,8 @@ import Icon from 'soapbox/components/icon';
const messages = defineMessages({
public_short: { id: 'privacy.public.short', defaultMessage: 'Public' },
public_long: { id: 'privacy.public.long', defaultMessage: 'Post to public timelines' },
local_short: { id: 'privacy.local.short', defaultMessage: 'Local' },
local_long: { id: 'privacy.local.long', defaultMessage: 'Post to {siteTitle}' },
unlisted_short: { id: 'privacy.unlisted.short', defaultMessage: 'Unlisted' },
unlisted_long: { id: 'privacy.unlisted.long', defaultMessage: 'Do not post to public timelines' },
private_short: { id: 'privacy.private.short', defaultMessage: 'Followers-only' },
@ -161,6 +164,7 @@ class PrivacyDropdown extends React.PureComponent {
value: PropTypes.string.isRequired,
onChange: PropTypes.func.isRequired,
intl: PropTypes.object.isRequired,
instance: ImmutablePropTypes.map,
};
state = {
@ -170,10 +174,11 @@ class PrivacyDropdown extends React.PureComponent {
constructor(props) {
super(props);
const { intl: { formatMessage } } = props;
const { intl: { formatMessage }, instance } = props;
this.options = [
{ icon: 'globe-w', value: 'public', text: formatMessage(messages.public_short), meta: formatMessage(messages.public_long) },
{ icon: 'users', value: 'local', text: formatMessage(messages.local_short), meta: formatMessage(messages.local_long, { siteTitle: instance.get('title') }) },
{ icon: 'unlock', value: 'unlisted', text: formatMessage(messages.unlisted_short), meta: formatMessage(messages.unlisted_long) },
{ icon: 'lock', value: 'private', text: formatMessage(messages.private_short), meta: formatMessage(messages.private_long) },
{ icon: 'envelope', value: 'direct', text: formatMessage(messages.direct_short), meta: formatMessage(messages.direct_long) },

View file

@ -7,6 +7,7 @@ import { isUserTouching } from '../../../is_mobile';
const mapStateToProps = state => ({
isModalOpen: state.get('modal').modalType === 'ACTIONS',
value: state.getIn(['compose', 'privacy']),
instance: state.get('instance'),
});
const mapDispatchToProps = dispatch => ({