ActionBar: fix repost active state, fixes #936

This commit is contained in:
Alex Gleason 2022-05-04 12:08:17 -05:00
parent 5e9c81b0c1
commit 47d1a8e5d6
No known key found for this signature in database
GPG Key ID: 7211D1F99744FBB7
2 changed files with 34 additions and 44 deletions

View File

@ -636,7 +636,7 @@ class StatusActionBar extends ImmutablePureComponent<IStatusActionBar, IStatusAc
count={replyCount} count={replyCount}
/> />
{features.quotePosts && me ? ( {(features.quotePosts && me) ? (
<DropdownMenuContainer <DropdownMenuContainer
items={reblogMenu} items={reblogMenu}
disabled={!publicStatus} disabled={!publicStatus}

View File

@ -522,41 +522,22 @@ class ActionBar extends React.PureComponent<IActionBar, IActionBarState> {
const reblog_disabled = (status.get('visibility') === 'direct' || status.get('visibility') === 'private'); const reblog_disabled = (status.get('visibility') === 'direct' || status.get('visibility') === 'private');
let reblogButton; const reblogMenu: Menu = [{
text: intl.formatMessage(status.reblogged ? messages.cancel_reblog_private : messages.reblog),
if (me && features.quotePosts) {
const reblogMenu: Menu = [
{
text: intl.formatMessage(status.get('reblogged') ? messages.cancel_reblog_private : messages.reblog),
action: this.handleReblogClick, action: this.handleReblogClick,
icon: require('@tabler/icons/icons/repeat.svg'), icon: require('@tabler/icons/icons/repeat.svg'),
}, }, {
{
text: intl.formatMessage(messages.quotePost), text: intl.formatMessage(messages.quotePost),
action: this.handleQuoteClick, action: this.handleQuoteClick,
icon: require('@tabler/icons/icons/quote.svg'), icon: require('@tabler/icons/icons/quote.svg'),
}, }];
];
reblogButton = ( const reblogButton = (
<DropdownMenuContainer
items={reblogMenu}
disabled={!publicStatus}
active={status.get('reblogged')}
pressed={status.get('reblogged')}
title={!publicStatus ? intl.formatMessage(messages.cannot_reblog) : intl.formatMessage(messages.reblog)}
src={reblogIcon}
text={intl.formatMessage(messages.reblog)}
onShiftClick={this.handleReblogClick}
/>
);
} else {
reblogButton = (
<IconButton <IconButton
disabled={reblog_disabled} disabled={reblog_disabled}
className={classNames({ className={classNames({
'text-gray-400 hover:text-gray-600': !status.get('reblogged'), 'text-gray-400 hover:text-gray-600': !status.reblogged,
'text-success-600 hover:text-success-600': status.get('reblogged'), 'text-success-600 hover:text-success-600': status.reblogged,
})} })}
title={reblog_disabled ? intl.formatMessage(messages.cannot_reblog) : intl.formatMessage(messages.reblog)} title={reblog_disabled ? intl.formatMessage(messages.cannot_reblog) : intl.formatMessage(messages.reblog)}
src={reblogIcon} src={reblogIcon}
@ -564,7 +545,6 @@ class ActionBar extends React.PureComponent<IActionBar, IActionBarState> {
text={intl.formatMessage(messages.reblog)} text={intl.formatMessage(messages.reblog)}
/> />
); );
}
return ( return (
<HStack justifyContent='between'> <HStack justifyContent='between'>
@ -576,7 +556,17 @@ class ActionBar extends React.PureComponent<IActionBar, IActionBarState> {
text={intl.formatMessage(messages.reply)} text={intl.formatMessage(messages.reply)}
/> />
{(features.quotePosts && me) ? (
<DropdownMenuContainer
items={reblogMenu}
disabled={!publicStatus}
onShiftClick={this.handleReblogClick}
>
{reblogButton} {reblogButton}
</DropdownMenuContainer>
) : (
reblogButton
)}
{features.emojiReacts ? ( {features.emojiReacts ? (
<EmojiButtonWrapper statusId={status.id}> <EmojiButtonWrapper statusId={status.id}>