SidebarList: fix shortcuts

The SidebarList refactor that occurred to accomodate new-style DMs
inadvertently broke the keyboard shortcuts to switch between channels.
Revives this, and adds support for switching between DMs as well.
This commit is contained in:
Liam Fitzgerald 2021-06-07 16:25:23 +10:00
parent 50e788825f
commit c6e116ee50
No known key found for this signature in database
GPG Key ID: D390E12C61D1CFFB

View File

@ -108,14 +108,19 @@ export function SidebarList(props: {
const offset = backward ? -1 : 1;
const newIdx = modulo(idx+offset, ordered.length - 1);
const { metadata, resource } = associations[ordered[newIdx]];
const joined = graphKeys.has(resource.slice(7));
let path = '/~landscape/home';
if ('graph' in metadata.config) {
path = getResourcePath(workspace, resource, joined, metadata.config.graph);
const newChannel = ordered[newIdx];
let path = '';
if(newChannel.startsWith('~')) {
path = `/~landscape/messages/dm/${newChannel}`;
} else {
const { metadata, resource } = associations.graph[ordered[newIdx]];
const joined = graphKeys.has(resource.slice(7));
if ('graph' in metadata.config) {
path = getResourcePath(workspace, resource, joined, metadata.config.graph);
}
}
history.push(path);
}, [selected, history.push]);
}, [ordered, selected, history.push]);
useShortcut('cycleForward', useCallback((e: KeyboardEvent) => {
cycleChannels(false);