tab preview mode - basic concept #767

This commit is contained in:
SPRINX0\prochazka
2024-11-19 14:10:41 +01:00
parent 08311145c8
commit d619e0f961
5 changed files with 39 additions and 9 deletions

View File

@@ -30,10 +30,12 @@ export function markTabSaved(tabid) {
openedTabs.update(files => files.map(tab => (tab.tabid == tabid ? { ...tab, unsaved: false } : tab)));
}
export function setSelectedTabFunc(files, tabid) {
export function setSelectedTabFunc(files, tabid, previewModeValue = undefined) {
return [
...(files || []).filter(x => x.tabid != tabid).map(x => ({ ...x, selected: false })),
...(files || []).filter(x => x.tabid == tabid).map(x => ({ ...x, selected: true })),
...(files || [])
.filter(x => x.tabid == tabid)
.map(x => ({ ...x, selected: true, tabPreviewMode: previewModeValue ?? x.tabPreviewMode })),
];
}

View File

@@ -22,6 +22,7 @@ export default async function openNewTab(newTab, initialData: any = undefined, o
let existing = null;
const { savedFile, savedFolder, savedFilePath } = newTab.props || {};
const { tabPreviewMode } = newTab;
if (savedFile || savedFilePath) {
existing = oldTabs.find(
x =>
@@ -49,7 +50,7 @@ export default async function openNewTab(newTab, initialData: any = undefined, o
}
if (existing) {
openedTabs.update(tabs => setSelectedTabFunc(tabs, existing.tabid));
openedTabs.update(tabs => setSelectedTabFunc(tabs, existing.tabid, !tabPreviewMode ? false : undefined));
return;
}
@@ -92,8 +93,14 @@ export default async function openNewTab(newTab, initialData: any = undefined, o
items.push(newItem);
}
const filesFiltered = tabPreviewMode ? (files || []).filter(x => !x.tabPreviewMode) : files;
return [
...(files || []).map(x => ({ ...x, selected: false, tabOrder: _.findIndex(items, y => y.tabid == x.tabid) })),
...(filesFiltered || []).map(x => ({
...x,
selected: false,
tabOrder: _.findIndex(items, y => y.tabid == x.tabid),
})),
{
...newTab,
tabid,