Fix missing icons and subtitle in mobile boost/quote menu (#36038)

This commit is contained in:
diondiondion 2025-09-08 10:50:46 +02:00 committed by GitHub
commit a5fbe2f5c1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 498 additions and 470 deletions

View file

@ -20,7 +20,7 @@ import { IconButton } from '../../../components/icon_button';
import { Dropdown } from 'mastodon/components/dropdown_menu';
import { me } from '../../../initial_state';
import { isFeatureEnabled } from '@/mastodon/utils/environment';
import { ReblogButton } from '@/mastodon/components/status/reblog_button';
import { BoostButton } from '@/mastodon/components/status/boost_button';
const messages = defineMessages({
delete: { id: 'status.delete', defaultMessage: 'Delete' },
@ -310,7 +310,7 @@ class ActionBar extends PureComponent {
<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'>
<ReblogButton status={status} />
<BoostButton status={status} />
</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={bookmarkTitle} icon='bookmark' iconComponent={status.get('bookmarked') ? BookmarkIcon : BookmarkBorderIcon} onClick={this.handleBookmarkClick} /></div>

View file

@ -1,6 +1,7 @@
import classNames from 'classnames';
import { Link } from 'react-router-dom';
import { DropdownMenuItemContent } from 'mastodon/components/dropdown_menu';
import type { MenuItem } from 'mastodon/models/dropdown_menu';
import {
isActionItem,
@ -18,14 +19,14 @@ export const ActionsModal: React.FC<{
return <li key={`sep-${i}`} className='dropdown-menu__separator' />;
}
const { text, dangerous } = option;
const { text, highlighted, disabled, dangerous } = option;
let element: React.ReactElement;
if (isActionItem(option)) {
element = (
<button onClick={onClick} data-index={i}>
{text}
<button onClick={onClick} data-index={i} disabled={disabled}>
<DropdownMenuItemContent item={option} />
</button>
);
} else if (isExternalLinkItem(option)) {
@ -38,21 +39,22 @@ export const ActionsModal: React.FC<{
onClick={onClick}
data-index={i}
>
{text}
<DropdownMenuItemContent item={option} />
</a>
);
} else {
element = (
<Link to={option.to} onClick={onClick} data-index={i}>
{text}
<DropdownMenuItemContent item={option} />
</Link>
);
}
return (
<li
className={classNames({
className={classNames('dropdown-menu__item', {
'dropdown-menu__item--dangerous': dangerous,
'dropdown-menu__item--highlighted': highlighted,
})}
key={`${text}-${i}`}
>