imrpoved closed tabs order algorithm

This commit is contained in:
Jan Prochazka
2021-01-24 10:10:07 +01:00
parent 69fd9bbc67
commit 0e6b8b4f73
5 changed files with 24 additions and 39 deletions

View File

@@ -15,3 +15,10 @@ export function sleep(milliseconds) {
export function changeTab(tabid, setOpenedTabs, changeFunc) {
setOpenedTabs(files => files.map(tab => (tab.tabid == tabid ? changeFunc(tab) : tab)));
}
export function setSelectedTabFunc(files, tabid) {
return [
...(files || []).filter(x => x.tabid != tabid).map(x => ({ ...x, selected: false })),
...(files || []).filter(x => x.tabid == tabid).map(x => ({ ...x, selected: true })),
];
}

View File

@@ -5,6 +5,7 @@ import stableStringify from 'json-stable-stringify';
import _ from 'lodash';
import { useOpenedTabs, useSetOpenedTabs } from './globalState';
import tabs from '../tabs';
import { setSelectedTabFunc } from './common';
export default function useOpenNewTab() {
const setOpenedTabs = useSetOpenedTabs();
@@ -37,12 +38,7 @@ export default function useOpenNewTab() {
}
if (existing) {
setOpenedTabs(tabs =>
tabs.map(x => ({
...x,
selected: x.tabid == existing.tabid,
}))
);
setOpenedTabs(tabs => setSelectedTabFunc(tabs, existing.tabid));
return;
}