Merge pull request #438 from ThibG/glitch-soc/fixes/j-k-hotkeys-pinned

[Glitch] Fix the hot key (j, k) does not function correctly when ther…
This commit is contained in:
beatrix 2018-04-26 11:33:48 -04:00 committed by GitHub
commit 8f12afb599
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 8 deletions

View file

@ -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>

View file

@ -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);
} }