end tab preview mode when change grid config

This commit is contained in:
SPRINX0\prochazka
2025-03-28 08:21:57 +01:00
parent bd571dc93d
commit 97e83def48

View File

@@ -1,6 +1,8 @@
import { createGridConfig } from 'dbgate-datalib';
import { writable } from 'svelte/store';
import { onDestroy } from 'svelte';
import { getOpenedTabs, openedTabs } from '../stores';
import _ from 'lodash';
function doLoadGridConfigFunc(tabid) {
try {
@@ -17,9 +19,35 @@ function doLoadGridConfigFunc(tabid) {
return createGridConfig();
}
function containsNotEmptyObject(obj) {
for (const key of Object.keys(obj)) {
if (!_.isEmpty(obj[key])) {
return true;
}
}
return false;
}
export default function useGridConfig(tabid) {
const config = writable(doLoadGridConfigFunc(tabid));
const unsubscribe = config.subscribe(value => localStorage.setItem(`tabdata_grid_${tabid}`, JSON.stringify(value)));
const unsubscribe = config.subscribe(value => {
localStorage.setItem(`tabdata_grid_${tabid}`, JSON.stringify(value));
if (containsNotEmptyObject(value)) {
if (getOpenedTabs().find(x => x.tabid == tabid)?.tabPreviewMode) {
openedTabs.update(tabs =>
tabs.map(x =>
x.tabid == tabid
? {
...x,
tabPreviewMode: false,
}
: x
)
);
}
}
});
onDestroy(unsubscribe);
return config;
}