mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-29 00:36:01 +00:00
tabs fix
This commit is contained in:
@@ -47,28 +47,32 @@ export default function TabContent({ toolbarPortalRef }) {
|
|||||||
|
|
||||||
const [mountedTabs, setMountedTabs] = React.useState({});
|
const [mountedTabs, setMountedTabs] = React.useState({});
|
||||||
|
|
||||||
// cleanup closed tabs
|
const selectedTab = files.find(x => x.selected && x.closedTime == null);
|
||||||
if (
|
|
||||||
_.difference(
|
|
||||||
_.keys(mountedTabs),
|
|
||||||
_.map(
|
|
||||||
files.filter(x => x.closedTime == null),
|
|
||||||
'tabid'
|
|
||||||
)
|
|
||||||
).length > 0
|
|
||||||
) {
|
|
||||||
setMountedTabs(_.pickBy(mountedTabs, (v, k) => files.find(x => x.tabid == k && x.closedTime == null)));
|
|
||||||
}
|
|
||||||
|
|
||||||
const selectedTab = files.find(x => x.selected);
|
React.useEffect(() => {
|
||||||
if (selectedTab) {
|
// cleanup closed tabs
|
||||||
const { tabid } = selectedTab;
|
|
||||||
if (tabid && !mountedTabs[tabid])
|
if (
|
||||||
setMountedTabs({
|
_.difference(
|
||||||
...mountedTabs,
|
_.keys(mountedTabs),
|
||||||
[tabid]: createTabComponent(selectedTab),
|
_.map(
|
||||||
});
|
files.filter(x => x.closedTime == null),
|
||||||
}
|
'tabid'
|
||||||
|
)
|
||||||
|
).length > 0
|
||||||
|
) {
|
||||||
|
setMountedTabs(_.pickBy(mountedTabs, (v, k) => files.find(x => x.tabid == k && x.closedTime == null)));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (selectedTab) {
|
||||||
|
const { tabid } = selectedTab;
|
||||||
|
if (tabid && !mountedTabs[tabid])
|
||||||
|
setMountedTabs({
|
||||||
|
...mountedTabs,
|
||||||
|
[tabid]: createTabComponent(selectedTab),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, [mountedTabs, files]);
|
||||||
|
|
||||||
return _.keys(mountedTabs).map(tabid => {
|
return _.keys(mountedTabs).map(tabid => {
|
||||||
const { TabComponent, props } = mountedTabs[tabid];
|
const { TabComponent, props } = mountedTabs[tabid];
|
||||||
|
|||||||
Reference in New Issue
Block a user