[Glitch] Fix the hot key (j, k) does not function correctly when there is a pinned toot in account timeline.
Port 23106844a1
to glitch-soc
This commit is contained in:
parent
64f74da493
commit
bc3be9ac5b
2 changed files with 22 additions and 8 deletions
|
@ -253,12 +253,12 @@ export default class Status extends ImmutablePureComponent {
|
||||||
this.context.router.history.push(`/accounts/${this.props.status.getIn(['account', 'id'])}`);
|
this.context.router.history.push(`/accounts/${this.props.status.getIn(['account', 'id'])}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
handleHotkeyMoveUp = () => {
|
handleHotkeyMoveUp = e => {
|
||||||
this.props.onMoveUp(this.props.containerId || this.props.id);
|
this.props.onMoveUp(this.props.containerId || this.props.id, e.target.getAttribute('data-featured'));
|
||||||
}
|
}
|
||||||
|
|
||||||
handleHotkeyMoveDown = () => {
|
handleHotkeyMoveDown = e => {
|
||||||
this.props.onMoveDown(this.props.containerId || this.props.id);
|
this.props.onMoveDown(this.props.containerId || this.props.id, e.target.getAttribute('data-featured'));
|
||||||
}
|
}
|
||||||
|
|
||||||
handleRef = c => {
|
handleRef = c => {
|
||||||
|
@ -292,6 +292,7 @@ export default class Status extends ImmutablePureComponent {
|
||||||
onOpenMedia,
|
onOpenMedia,
|
||||||
notification,
|
notification,
|
||||||
hidden,
|
hidden,
|
||||||
|
featured,
|
||||||
...other
|
...other
|
||||||
} = this.props;
|
} = this.props;
|
||||||
const { isExpanded } = this.state;
|
const { isExpanded } = this.state;
|
||||||
|
@ -426,6 +427,7 @@ export default class Status extends ImmutablePureComponent {
|
||||||
{...selectorAttribs}
|
{...selectorAttribs}
|
||||||
ref={handleRef}
|
ref={handleRef}
|
||||||
tabIndex='0'
|
tabIndex='0'
|
||||||
|
data-featured={featured ? 'true' : null}
|
||||||
>
|
>
|
||||||
<header className='status__info'>
|
<header className='status__info'>
|
||||||
<span>
|
<span>
|
||||||
|
|
|
@ -28,13 +28,25 @@ export default class StatusList extends ImmutablePureComponent {
|
||||||
trackScroll: true,
|
trackScroll: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleMoveUp = id => {
|
getFeaturedStatusCount = () => {
|
||||||
const elementIndex = this.props.statusIds.indexOf(id) - 1;
|
return this.props.featuredStatusIds ? this.props.featuredStatusIds.size : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
getCurrentStatusIndex = (id, featured) => {
|
||||||
|
if (featured) {
|
||||||
|
return this.props.featuredStatusIds.indexOf(id);
|
||||||
|
} else {
|
||||||
|
return this.props.statusIds.indexOf(id) + this.getFeaturedStatusCount();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
handleMoveUp = (id, featured) => {
|
||||||
|
const elementIndex = this.getCurrentStatusIndex(id, featured) - 1;
|
||||||
this._selectChild(elementIndex);
|
this._selectChild(elementIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
handleMoveDown = id => {
|
handleMoveDown = (id, featured) => {
|
||||||
const elementIndex = this.props.statusIds.indexOf(id) + 1;
|
const elementIndex = this.getCurrentStatusIndex(id, featured) + 1;
|
||||||
this._selectChild(elementIndex);
|
this._selectChild(elementIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue