[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
local
Thibaut Girka 6 years ago
parent 06fc278e4c
commit 003d114332
  1. 10
      app/javascript/flavours/glitch/components/status.js
  2. 20
      app/javascript/flavours/glitch/components/status_list.js

@ -253,12 +253,12 @@ export default class Status extends ImmutablePureComponent {
this.context.router.history.push(`/accounts/${this.props.status.getIn(['account', 'id'])}`);
}
handleHotkeyMoveUp = () => {
this.props.onMoveUp(this.props.containerId || this.props.id);
handleHotkeyMoveUp = e => {
this.props.onMoveUp(this.props.containerId || this.props.id, e.target.getAttribute('data-featured'));
}
handleHotkeyMoveDown = () => {
this.props.onMoveDown(this.props.containerId || this.props.id);
handleHotkeyMoveDown = e => {
this.props.onMoveDown(this.props.containerId || this.props.id, e.target.getAttribute('data-featured'));
}
handleRef = c => {
@ -292,6 +292,7 @@ export default class Status extends ImmutablePureComponent {
onOpenMedia,
notification,
hidden,
featured,
...other
} = this.props;
const { isExpanded } = this.state;
@ -426,6 +427,7 @@ export default class Status extends ImmutablePureComponent {
{...selectorAttribs}
ref={handleRef}
tabIndex='0'
data-featured={featured ? 'true' : null}
>
<header className='status__info'>
<span>

@ -28,13 +28,25 @@ export default class StatusList extends ImmutablePureComponent {
trackScroll: true,
};
handleMoveUp = id => {
const elementIndex = this.props.statusIds.indexOf(id) - 1;
getFeaturedStatusCount = () => {
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);
}
handleMoveDown = id => {
const elementIndex = this.props.statusIds.indexOf(id) + 1;
handleMoveDown = (id, featured) => {
const elementIndex = this.getCurrentStatusIndex(id, featured) + 1;
this._selectChild(elementIndex);
}

Loading…
Cancel
Save