Fix favorite & bookmark text toggle in timeline, status and image view (#27209)
This commit is contained in:
		
							parent
							
								
									655c4a5ebb
								
							
						
					
					
						commit
						3201485df2
					
				| 
						 | 
					@ -47,6 +47,7 @@ const messages = defineMessages({
 | 
				
			||||||
  cancel_reblog_private: { id: 'status.cancel_reblog_private', defaultMessage: 'Unboost' },
 | 
					  cancel_reblog_private: { id: 'status.cancel_reblog_private', defaultMessage: 'Unboost' },
 | 
				
			||||||
  cannot_reblog: { id: 'status.cannot_reblog', defaultMessage: 'This post cannot be boosted' },
 | 
					  cannot_reblog: { id: 'status.cannot_reblog', defaultMessage: 'This post cannot be boosted' },
 | 
				
			||||||
  favourite: { id: 'status.favourite', defaultMessage: 'Favorite' },
 | 
					  favourite: { id: 'status.favourite', defaultMessage: 'Favorite' },
 | 
				
			||||||
 | 
					  removeFavourite: { id: 'status.remove_favourite', defaultMessage: 'Remove from favorites' },
 | 
				
			||||||
  bookmark: { id: 'status.bookmark', defaultMessage: 'Bookmark' },
 | 
					  bookmark: { id: 'status.bookmark', defaultMessage: 'Bookmark' },
 | 
				
			||||||
  removeBookmark: { id: 'status.remove_bookmark', defaultMessage: 'Remove bookmark' },
 | 
					  removeBookmark: { id: 'status.remove_bookmark', defaultMessage: 'Remove bookmark' },
 | 
				
			||||||
  open: { id: 'status.open', defaultMessage: 'Expand this status' },
 | 
					  open: { id: 'status.open', defaultMessage: 'Expand this status' },
 | 
				
			||||||
| 
						 | 
					@ -271,8 +272,6 @@ class StatusActionBar extends ImmutablePureComponent {
 | 
				
			||||||
    if (signedIn) {
 | 
					    if (signedIn) {
 | 
				
			||||||
      menu.push(null);
 | 
					      menu.push(null);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      menu.push({ text: intl.formatMessage(status.get('bookmarked') ? messages.removeBookmark : messages.bookmark), action: this.handleBookmarkClick });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      if (writtenByMe && pinnableStatus) {
 | 
					      if (writtenByMe && pinnableStatus) {
 | 
				
			||||||
        menu.push({ text: intl.formatMessage(status.get('pinned') ? messages.unpin : messages.pin), action: this.handlePinClick });
 | 
					        menu.push({ text: intl.formatMessage(status.get('pinned') ? messages.unpin : messages.pin), action: this.handlePinClick });
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
| 
						 | 
					@ -371,6 +370,9 @@ class StatusActionBar extends ImmutablePureComponent {
 | 
				
			||||||
      reblogIconComponent = RepeatDisabledIcon;
 | 
					      reblogIconComponent = RepeatDisabledIcon;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const bookmarkTitle = intl.formatMessage(status.get('bookmarked') ? messages.removeBookmark : messages.bookmark);
 | 
				
			||||||
 | 
					    const favouriteTitle = intl.formatMessage(status.get('favourited') ? messages.removeFavourite : messages.favourite);
 | 
				
			||||||
    const isReply = status.get('in_reply_to_account_id') === status.getIn(['account', 'id']);
 | 
					    const isReply = status.get('in_reply_to_account_id') === status.getIn(['account', 'id']);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return (
 | 
					    return (
 | 
				
			||||||
| 
						 | 
					@ -382,10 +384,10 @@ class StatusActionBar extends ImmutablePureComponent {
 | 
				
			||||||
          <IconButton className={classNames('status__action-bar__button', { reblogPrivate })} disabled={!publicStatus && !reblogPrivate} active={status.get('reblogged')} title={reblogTitle} icon='retweet' iconComponent={reblogIconComponent} onClick={this.handleReblogClick} counter={withCounters ? status.get('reblogs_count') : undefined} />
 | 
					          <IconButton className={classNames('status__action-bar__button', { reblogPrivate })} disabled={!publicStatus && !reblogPrivate} active={status.get('reblogged')} title={reblogTitle} icon='retweet' iconComponent={reblogIconComponent} onClick={this.handleReblogClick} counter={withCounters ? status.get('reblogs_count') : undefined} />
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div className='status__action-bar__button-wrapper'>
 | 
					        <div className='status__action-bar__button-wrapper'>
 | 
				
			||||||
          <IconButton className='status__action-bar__button star-icon' animate active={status.get('favourited')} title={intl.formatMessage(messages.favourite)} icon='star' iconComponent={status.get('favourited') ? StarIcon : StarBorderIcon} onClick={this.handleFavouriteClick} counter={withCounters ? status.get('favourites_count') : undefined} />
 | 
					          <IconButton className='status__action-bar__button star-icon' animate active={status.get('favourited')} title={favouriteTitle} icon='star' iconComponent={status.get('favourited') ? StarIcon : StarBorderIcon} onClick={this.handleFavouriteClick} counter={withCounters ? status.get('favourites_count') : undefined} />
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div className='status__action-bar__button-wrapper'>
 | 
					        <div className='status__action-bar__button-wrapper'>
 | 
				
			||||||
          <IconButton className='status__action-bar__button bookmark-icon' disabled={!signedIn} active={status.get('bookmarked')} title={intl.formatMessage(messages.bookmark)} icon='bookmark' iconComponent={status.get('bookmarked') ? BookmarkIcon : BookmarkBorderIcon} onClick={this.handleBookmarkClick} />
 | 
					          <IconButton className='status__action-bar__button bookmark-icon' disabled={!signedIn} active={status.get('bookmarked')} title={bookmarkTitle} icon='bookmark' iconComponent={status.get('bookmarked') ? BookmarkIcon : BookmarkBorderIcon} onClick={this.handleBookmarkClick} />
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div className='status__action-bar__button-wrapper'>
 | 
					        <div className='status__action-bar__button-wrapper'>
 | 
				
			||||||
          <DropdownMenuContainer
 | 
					          <DropdownMenuContainer
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33,6 +33,7 @@ const messages = defineMessages({
 | 
				
			||||||
  cancel_reblog_private: { id: 'status.cancel_reblog_private', defaultMessage: 'Unboost' },
 | 
					  cancel_reblog_private: { id: 'status.cancel_reblog_private', defaultMessage: 'Unboost' },
 | 
				
			||||||
  cannot_reblog: { id: 'status.cannot_reblog', defaultMessage: 'This post cannot be boosted' },
 | 
					  cannot_reblog: { id: 'status.cannot_reblog', defaultMessage: 'This post cannot be boosted' },
 | 
				
			||||||
  favourite: { id: 'status.favourite', defaultMessage: 'Favorite' },
 | 
					  favourite: { id: 'status.favourite', defaultMessage: 'Favorite' },
 | 
				
			||||||
 | 
					  removeFavourite: { id: 'status.remove_favourite', defaultMessage: 'Remove from favorites' },
 | 
				
			||||||
  open: { id: 'status.open', defaultMessage: 'Expand this status' },
 | 
					  open: { id: 'status.open', defaultMessage: 'Expand this status' },
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -177,11 +178,13 @@ class Footer extends ImmutablePureComponent {
 | 
				
			||||||
      reblogIconComponent = RepeatDisabledIcon;
 | 
					      reblogIconComponent = RepeatDisabledIcon;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const favouriteTitle = intl.formatMessage(status.get('favourited') ? messages.removeFavourite : messages.favourite);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return (
 | 
					    return (
 | 
				
			||||||
      <div className='picture-in-picture__footer'>
 | 
					      <div className='picture-in-picture__footer'>
 | 
				
			||||||
        <IconButton className='status__action-bar-button' title={replyTitle} icon={status.get('in_reply_to_account_id') === status.getIn(['account', 'id']) ? 'reply' : replyIcon} iconComponent={status.get('in_reply_to_account_id') === status.getIn(['account', 'id']) ? ReplyIcon : replyIconComponent} onClick={this.handleReplyClick} counter={status.get('replies_count')} />
 | 
					        <IconButton className='status__action-bar-button' title={replyTitle} icon={status.get('in_reply_to_account_id') === status.getIn(['account', 'id']) ? 'reply' : replyIcon} iconComponent={status.get('in_reply_to_account_id') === status.getIn(['account', 'id']) ? ReplyIcon : replyIconComponent} onClick={this.handleReplyClick} counter={status.get('replies_count')} />
 | 
				
			||||||
        <IconButton className={classNames('status__action-bar-button', { reblogPrivate })} disabled={!publicStatus && !reblogPrivate}  active={status.get('reblogged')} title={reblogTitle} icon='retweet' iconComponent={reblogIconComponent} onClick={this.handleReblogClick} counter={status.get('reblogs_count')} />
 | 
					        <IconButton className={classNames('status__action-bar-button', { reblogPrivate })} disabled={!publicStatus && !reblogPrivate}  active={status.get('reblogged')} title={reblogTitle} icon='retweet' iconComponent={reblogIconComponent} onClick={this.handleReblogClick} counter={status.get('reblogs_count')} />
 | 
				
			||||||
        <IconButton className='status__action-bar-button star-icon' animate active={status.get('favourited')} title={intl.formatMessage(messages.favourite)} icon='star' iconComponent={StarIcon} onClick={this.handleFavouriteClick} counter={status.get('favourites_count')} />
 | 
					        <IconButton className='status__action-bar-button star-icon' animate active={status.get('favourited')} title={favouriteTitle} icon='star' iconComponent={StarIcon} onClick={this.handleFavouriteClick} counter={status.get('favourites_count')} />
 | 
				
			||||||
        {withOpenButton && <IconButton className='status__action-bar-button' title={intl.formatMessage(messages.open)} icon='external-link' iconComponent={OpenInNewIcon} onClick={this.handleOpenClick} href={`/@${status.getIn(['account', 'acct'])}/${status.get('id')}`} />}
 | 
					        {withOpenButton && <IconButton className='status__action-bar-button' title={intl.formatMessage(messages.open)} icon='external-link' iconComponent={OpenInNewIcon} onClick={this.handleOpenClick} href={`/@${status.getIn(['account', 'acct'])}/${status.get('id')}`} />}
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -39,7 +39,9 @@ const messages = defineMessages({
 | 
				
			||||||
  cancel_reblog_private: { id: 'status.cancel_reblog_private', defaultMessage: 'Unboost' },
 | 
					  cancel_reblog_private: { id: 'status.cancel_reblog_private', defaultMessage: 'Unboost' },
 | 
				
			||||||
  cannot_reblog: { id: 'status.cannot_reblog', defaultMessage: 'This post cannot be boosted' },
 | 
					  cannot_reblog: { id: 'status.cannot_reblog', defaultMessage: 'This post cannot be boosted' },
 | 
				
			||||||
  favourite: { id: 'status.favourite', defaultMessage: 'Favorite' },
 | 
					  favourite: { id: 'status.favourite', defaultMessage: 'Favorite' },
 | 
				
			||||||
 | 
					  removeFavourite: { id: 'status.remove_favourite', defaultMessage: 'Remove from favorites' },
 | 
				
			||||||
  bookmark: { id: 'status.bookmark', defaultMessage: 'Bookmark' },
 | 
					  bookmark: { id: 'status.bookmark', defaultMessage: 'Bookmark' },
 | 
				
			||||||
 | 
					  removeBookmark: { id: 'status.remove_bookmark', defaultMessage: 'Remove bookmark' },
 | 
				
			||||||
  more: { id: 'status.more', defaultMessage: 'More' },
 | 
					  more: { id: 'status.more', defaultMessage: 'More' },
 | 
				
			||||||
  mute: { id: 'status.mute', defaultMessage: 'Mute @{name}' },
 | 
					  mute: { id: 'status.mute', defaultMessage: 'Mute @{name}' },
 | 
				
			||||||
  muteConversation: { id: 'status.mute_conversation', defaultMessage: 'Mute conversation' },
 | 
					  muteConversation: { id: 'status.mute_conversation', defaultMessage: 'Mute conversation' },
 | 
				
			||||||
| 
						 | 
					@ -304,12 +306,15 @@ class ActionBar extends PureComponent {
 | 
				
			||||||
      reblogIconComponent = RepeatDisabledIcon;
 | 
					      reblogIconComponent = RepeatDisabledIcon;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const bookmarkTitle = intl.formatMessage(status.get('bookmarked') ? messages.removeBookmark : messages.bookmark);
 | 
				
			||||||
 | 
					    const favouriteTitle = intl.formatMessage(status.get('favourited') ? messages.removeFavourite : messages.favourite);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return (
 | 
					    return (
 | 
				
			||||||
      <div className='detailed-status__action-bar'>
 | 
					      <div className='detailed-status__action-bar'>
 | 
				
			||||||
        <div className='detailed-status__button'><IconButton title={intl.formatMessage(messages.reply)} icon={status.get('in_reply_to_account_id') === status.getIn(['account', 'id']) ? 'reply' : replyIcon} iconComponent={status.get('in_reply_to_account_id') === status.getIn(['account', 'id']) ? ReplyIcon : replyIconComponent}  onClick={this.handleReplyClick} /></div>
 | 
					        <div className='detailed-status__button'><IconButton title={intl.formatMessage(messages.reply)} icon={status.get('in_reply_to_account_id') === status.getIn(['account', 'id']) ? 'reply' : replyIcon} iconComponent={status.get('in_reply_to_account_id') === status.getIn(['account', 'id']) ? ReplyIcon : replyIconComponent}  onClick={this.handleReplyClick} /></div>
 | 
				
			||||||
        <div className='detailed-status__button'><IconButton className={classNames({ reblogPrivate })} disabled={!publicStatus && !reblogPrivate} active={status.get('reblogged')} title={reblogTitle} icon='retweet' iconComponent={reblogIconComponent} onClick={this.handleReblogClick} /></div>
 | 
					        <div className='detailed-status__button'><IconButton className={classNames({ reblogPrivate })} disabled={!publicStatus && !reblogPrivate} active={status.get('reblogged')} title={reblogTitle} icon='retweet' iconComponent={reblogIconComponent} onClick={this.handleReblogClick} /></div>
 | 
				
			||||||
        <div className='detailed-status__button'><IconButton className='star-icon' animate active={status.get('favourited')} title={intl.formatMessage(messages.favourite)} icon='star' iconComponent={status.get('favourited') ? StarIcon : StarBorderIcon} onClick={this.handleFavouriteClick} /></div>
 | 
					        <div className='detailed-status__button'><IconButton className='star-icon' animate active={status.get('favourited')} title={favouriteTitle} icon='star' iconComponent={status.get('favourited') ? StarIcon : StarBorderIcon} onClick={this.handleFavouriteClick} /></div>
 | 
				
			||||||
        <div className='detailed-status__button'><IconButton className='bookmark-icon' disabled={!signedIn} active={status.get('bookmarked')} title={intl.formatMessage(messages.bookmark)} icon='bookmark' iconComponent={status.get('bookmarked') ? BookmarkIcon : BookmarkBorderIcon} onClick={this.handleBookmarkClick} /></div>
 | 
					        <div className='detailed-status__button'><IconButton className='bookmark-icon' disabled={!signedIn} active={status.get('bookmarked')} title={bookmarkTitle} icon='bookmark' iconComponent={status.get('bookmarked') ? BookmarkIcon : BookmarkBorderIcon} onClick={this.handleBookmarkClick} /></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <div className='detailed-status__action-bar-dropdown'>
 | 
					        <div className='detailed-status__action-bar-dropdown'>
 | 
				
			||||||
          <DropdownMenuContainer icon='ellipsis-h' iconComponent={MoreHorizIcon} status={status} items={menu} direction='left' title={intl.formatMessage(messages.more)} />
 | 
					          <DropdownMenuContainer icon='ellipsis-h' iconComponent={MoreHorizIcon} status={status} items={menu} direction='left' title={intl.formatMessage(messages.more)} />
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -836,6 +836,7 @@
 | 
				
			||||||
  "status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.",
 | 
					  "status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.",
 | 
				
			||||||
  "status.redraft": "Delete & re-draft",
 | 
					  "status.redraft": "Delete & re-draft",
 | 
				
			||||||
  "status.remove_bookmark": "Remove bookmark",
 | 
					  "status.remove_bookmark": "Remove bookmark",
 | 
				
			||||||
 | 
					  "status.remove_favourite": "Remove from favorites",
 | 
				
			||||||
  "status.replied_in_thread": "Replied in thread",
 | 
					  "status.replied_in_thread": "Replied in thread",
 | 
				
			||||||
  "status.replied_to": "Replied to {name}",
 | 
					  "status.replied_to": "Replied to {name}",
 | 
				
			||||||
  "status.reply": "Reply",
 | 
					  "status.reply": "Reply",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue