mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-21 02:25:59 +00:00
table data grid
This commit is contained in:
30
packages/web/src/utility/common.js
Normal file
30
packages/web/src/utility/common.js
Normal file
@@ -0,0 +1,30 @@
|
||||
import { openedTabs } from '../stores';
|
||||
|
||||
export class LoadingToken {
|
||||
constructor() {
|
||||
this.isCanceled = false;
|
||||
}
|
||||
|
||||
cancel() {
|
||||
this.isCanceled = true;
|
||||
}
|
||||
}
|
||||
|
||||
export function sleep(milliseconds) {
|
||||
return new Promise(resolve => window.setTimeout(() => resolve(null), 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 })),
|
||||
];
|
||||
}
|
||||
|
||||
export function setSelectedTab(tabid) {
|
||||
openedTabs.update(tabs => setSelectedTabFunc(tabs, tabid));
|
||||
}
|
||||
@@ -2,7 +2,7 @@ import uuidv1 from 'uuid/v1';
|
||||
import { openedTabs } from '../stores';
|
||||
|
||||
export default async function openNewTab(newTab, initialData = undefined, options = undefined) {
|
||||
console.log('OPENING NEW TAB', newTab);
|
||||
// console.log('OPENING NEW TAB', newTab);
|
||||
const tabid = uuidv1();
|
||||
openedTabs.update(tabs => [
|
||||
...(tabs || []).map(x => ({ ...x, selected: false })),
|
||||
|
||||
21
packages/web/src/utility/useGridConfig.ts
Normal file
21
packages/web/src/utility/useGridConfig.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import { createGridConfig } from 'dbgate-datalib';
|
||||
import { writable } from 'svelte/store';
|
||||
import { onDestroy } from 'svelte';
|
||||
|
||||
const loadGridConfigFunc = tabid => () => {
|
||||
const existing = localStorage.getItem(`tabdata_grid_${tabid}`);
|
||||
if (existing) {
|
||||
return {
|
||||
...createGridConfig(),
|
||||
...JSON.parse(existing),
|
||||
};
|
||||
}
|
||||
return createGridConfig();
|
||||
};
|
||||
|
||||
export default function useGridConfig(tabid) {
|
||||
const config = writable(loadGridConfigFunc(tabid));
|
||||
const unsubscribe = config.subscribe(value => localStorage.setItem(`tabdata_grid_${tabid}`, JSON.stringify(value)));
|
||||
onDestroy(unsubscribe)
|
||||
return config;
|
||||
}
|
||||
Reference in New Issue
Block a user