This commit is contained in:
Jan Prochazka
2021-01-24 09:49:58 +01:00
parent b3d436ddf9
commit e561bf38f6

View File

@@ -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];