kopia lustrzana https://gitlab.com/soapbox-pub/soapbox
Fix janky IconButton (Compose issues) and restore lock/envelope icon for un-repostable posts
rodzic
29fe9b40b6
commit
9b0e1218c9
|
@ -11,8 +11,8 @@ export default class IconButton extends React.PureComponent {
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
className: PropTypes.string,
|
className: PropTypes.string,
|
||||||
title: PropTypes.string.isRequired,
|
title: PropTypes.string.isRequired,
|
||||||
icon: PropTypes.string.isRequired,
|
icon: PropTypes.string,
|
||||||
iconset: PropTypes.string,
|
src: PropTypes.string,
|
||||||
onClick: PropTypes.func,
|
onClick: PropTypes.func,
|
||||||
onMouseDown: PropTypes.func,
|
onMouseDown: PropTypes.func,
|
||||||
onKeyUp: PropTypes.func,
|
onKeyUp: PropTypes.func,
|
||||||
|
@ -98,7 +98,7 @@ export default class IconButton extends React.PureComponent {
|
||||||
disabled,
|
disabled,
|
||||||
expanded,
|
expanded,
|
||||||
icon,
|
icon,
|
||||||
iconset,
|
src,
|
||||||
inverted,
|
inverted,
|
||||||
overlay,
|
overlay,
|
||||||
pressed,
|
pressed,
|
||||||
|
@ -106,7 +106,6 @@ export default class IconButton extends React.PureComponent {
|
||||||
title,
|
title,
|
||||||
text,
|
text,
|
||||||
emoji,
|
emoji,
|
||||||
...rest
|
|
||||||
} = this.props;
|
} = this.props;
|
||||||
|
|
||||||
const classes = classNames(className, 'icon-button', {
|
const classes = classNames(className, 'icon-button', {
|
||||||
|
@ -139,7 +138,7 @@ export default class IconButton extends React.PureComponent {
|
||||||
<div style={style}>
|
<div style={style}>
|
||||||
{emoji
|
{emoji
|
||||||
? <div className='icon-button__emoji' dangerouslySetInnerHTML={{ __html: emojify(emoji) }} aria-hidden='true' />
|
? <div className='icon-button__emoji' dangerouslySetInnerHTML={{ __html: emojify(emoji) }} aria-hidden='true' />
|
||||||
: <Icon id={icon} {...rest} aria-hidden='true' />}
|
: <Icon id={icon} src={src} fixedWidth aria-hidden='true' />}
|
||||||
</div>
|
</div>
|
||||||
{text && <span className='icon_button__text'>{text}</span>}
|
{text && <span className='icon_button__text'>{text}</span>}
|
||||||
</button>
|
</button>
|
||||||
|
@ -168,7 +167,7 @@ export default class IconButton extends React.PureComponent {
|
||||||
<div style={style}>
|
<div style={style}>
|
||||||
{emoji
|
{emoji
|
||||||
? <div className='icon-button__emoji' style={{ transform: `rotate(${rotate}deg)` }} dangerouslySetInnerHTML={{ __html: emojify(emoji) }} aria-hidden='true' />
|
? <div className='icon-button__emoji' style={{ transform: `rotate(${rotate}deg)` }} dangerouslySetInnerHTML={{ __html: emojify(emoji) }} aria-hidden='true' />
|
||||||
: <Icon id={icon} {...rest} style={{ transform: `rotate(${rotate}deg)` }} aria-hidden='true' />}
|
: <Icon id={icon} src={src} style={{ transform: `rotate(${rotate}deg)` }} fixedWidth aria-hidden='true' />}
|
||||||
</div>
|
</div>
|
||||||
{text && <span className='icon_button__text'>{text}</span>}
|
{text && <span className='icon_button__text'>{text}</span>}
|
||||||
</button>
|
</button>
|
||||||
|
|
|
@ -401,8 +401,15 @@ class StatusActionBar extends ImmutablePureComponent {
|
||||||
}[meEmojiReact] || messages.favourite);
|
}[meEmojiReact] || messages.favourite);
|
||||||
|
|
||||||
const menu = this._makeMenu(publicStatus);
|
const menu = this._makeMenu(publicStatus);
|
||||||
|
let reblogIcon = require('feather-icons/dist/icons/repeat.svg');
|
||||||
let replyTitle;
|
let replyTitle;
|
||||||
|
|
||||||
|
if (status.get('visibility') === 'direct') {
|
||||||
|
reblogIcon = require('@tabler/icons/icons/mail.svg');
|
||||||
|
} else if (status.get('visibility') === 'private') {
|
||||||
|
reblogIcon = require('@tabler/icons/icons/lock.svg');
|
||||||
|
}
|
||||||
|
|
||||||
if (status.get('in_reply_to_id', null) === null) {
|
if (status.get('in_reply_to_id', null) === null) {
|
||||||
replyTitle = intl.formatMessage(messages.reply);
|
replyTitle = intl.formatMessage(messages.reply);
|
||||||
} else {
|
} else {
|
||||||
|
@ -420,7 +427,7 @@ class StatusActionBar extends ImmutablePureComponent {
|
||||||
{replyCount !== 0 && <Link to={`/@${status.getIn(['account', 'acct'])}/posts/${status.get('id')}`} className='detailed-status__link'>{replyCount}</Link>}
|
{replyCount !== 0 && <Link to={`/@${status.getIn(['account', 'acct'])}/posts/${status.get('id')}`} className='detailed-status__link'>{replyCount}</Link>}
|
||||||
</div>
|
</div>
|
||||||
<div className='status__action-bar__counter'>
|
<div className='status__action-bar__counter'>
|
||||||
<IconButton className='status__action-bar-button' disabled={!publicStatus} active={status.get('reblogged')} pressed={status.get('reblogged')} title={!publicStatus ? intl.formatMessage(messages.cannot_reblog) : intl.formatMessage(messages.reblog)} src={require('feather-icons/dist/icons/repeat.svg')} onClick={this.handleReblogClick} />
|
<IconButton className='status__action-bar-button' disabled={!publicStatus} active={status.get('reblogged')} pressed={status.get('reblogged')} title={!publicStatus ? intl.formatMessage(messages.cannot_reblog) : intl.formatMessage(messages.reblog)} src={reblogIcon} onClick={this.handleReblogClick} />
|
||||||
{reblogCount !== 0 && <Link to={`/@${status.getIn(['account', 'acct'])}/posts/${status.get('id')}/reblogs`} className='detailed-status__link'>{reblogCount}</Link>}
|
{reblogCount !== 0 && <Link to={`/@${status.getIn(['account', 'acct'])}/posts/${status.get('id')}/reblogs`} className='detailed-status__link'>{reblogCount}</Link>}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
|
|
Ładowanie…
Reference in New Issue