Skip to content

Commit 4ec5a3c

Browse files
add lazy prop into tabData object
1 parent af730f2 commit 4ec5a3c

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

src/panel/panel.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,18 @@ const PanelComponent = function PanelComponent(props) {
88
api = React.useContext(ApiContext),
99
isSelected = id === selectedTabID,
1010
panelProps = panelPropsManager({isSelected, api, id}),
11-
PanelComponent = api.getTab(id).panelComponent;
11+
{panelComponent: PanelComponent, lazy} = api.getTab(id);
12+
let hasBeenSelected = false;
13+
if (!lazy || isSelected || api.activedTabsHistory.tabsId.indexOf(id) >= 0) {
14+
hasBeenSelected = true;
15+
}
1216
return (
1317
<div {...panelProps}>
14-
{PanelComponent ? <PanelComponent id={id} isSelected={isSelected} api={api.userProxy}></PanelComponent> : null}
18+
{hasBeenSelected ? (
19+
PanelComponent ? (
20+
<PanelComponent id={id} isSelected={isSelected} api={api.userProxy}></PanelComponent>
21+
) : null
22+
) : null}
1523
</div>
1624
);
1725
};

src/utils/api/optionManager/optionManager.factory.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ OptionManager.prototype._setSetting = function () {
9696
closable: true,
9797
iconClass: '',
9898
disable: false,
99+
lazy: false,
99100
id: `tab_${new Date().getTime()}`,
100101
};
101102
},

src/utils/api/optionManager/optionManager.test.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ describe('OptionManager constructor : ', () => {
7979
closable: true,
8080
iconClass: '',
8181
disable: false,
82+
lazy: false,
8283
id: defaultTabData.id,
8384
});
8485
expect(defaultTabData.id.includes('tab_')).toBe(true);

0 commit comments

Comments
 (0)