Skip to content

Commit 1431c1c

Browse files
panelComponent property of tabData object can
be null
1 parent 904feb4 commit 1431c1c

File tree

5 files changed

+19
-18
lines changed

5 files changed

+19
-18
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -944,8 +944,8 @@ const {selectedTabID, openTabIDs} = instance.getPreviousData();
944944
</tr>
945945
<tr>
946946
<td>panelComponent</td>
947-
<td>can be either of React Element or React Component</td>
948-
<td></td>
947+
<td>React Element | React Component | null</td>
948+
<td>function component which returns empty div</td>
949949
<td>false</td>
950950
</tr>
951951
<tr>

src/panel/__snapshots__/panel.test.js.snap

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,7 @@ exports[`panel structure : default options 1`] = `
7979
id="rc-dyn-tabs-p-2"
8080
role="tabpanel"
8181
tab-id="2"
82-
>
83-
<p>
84-
tab2 panel
85-
</p>
86-
</div>
82+
/>
8783
<div
8884
aria-hidden={true}
8985
aria-labelledby="rc-dyn-tabs-l-3"
@@ -136,11 +132,7 @@ exports[`panel structure : rtl and none accessibility options 1`] = `
136132
<div
137133
className="rc-dyn-tabs-panel"
138134
tab-id="2"
139-
>
140-
<p>
141-
tab2 panel
142-
</p>
143-
</div>
135+
/>
144136
<div
145137
className="rc-dyn-tabs-panel"
146138
tab-id="3"

src/panel/panel.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ const PanelComponent = function PanelComponent(props) {
1111
PanelComponent = api.getTab(id).panelComponent;
1212
return (
1313
<div {...panelProps}>
14-
<PanelComponent id={id} isSelected={isSelected} api={api.userProxy}></PanelComponent>
14+
{PanelComponent ? <PanelComponent id={id} isSelected={isSelected} api={api.userProxy}></PanelComponent> : null}
1515
</div>
1616
);
1717
};

src/panel/panel.test.js

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import renderer from 'react-test-renderer';
55
import Api from '../utils/api/api.js';
66
let container = document.createElement('div'),
77
realUseContext;
8-
const getDefaultApi = () => ({
8+
const getDefaultOptions = () => ({
99
tabs: [
1010
{
1111
id: '1',
@@ -18,9 +18,7 @@ const getDefaultApi = () => ({
1818
id: '2',
1919
title: 'tab2',
2020
disable: true,
21-
panelComponent: function panelComponent3(props) {
22-
return <p>{props.api.getTab(props.id).title + ' panel'}</p>;
23-
},
21+
panelComponent: null,
2422
},
2523
{id: '3', title: 'tab3'},
2624
{
@@ -37,7 +35,7 @@ const getDefaultApi = () => ({
3735
],
3836
});
3937
const setMockUseContext = (op = {}) => {
40-
const defaultOp = getDefaultApi();
38+
const defaultOp = getDefaultOptions();
4139
const instance = new Api({options: Object.assign({}, defaultOp, op)});
4240
React.useContext = jest.fn(() => instance);
4341
};

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,17 @@ describe('OptionManager.prototype.validateTabData : ', () => {
144144
expect(tabData.disable === false).toBe(true);
145145
expect(typeof tabData.id === 'string').toBe(true);
146146
});
147+
test('panelComponent parameter can be null', () => {
148+
const tabData = obj.validateTabData({panelComponent: null});
149+
expect(tabData.panelComponent).toBe(null);
150+
});
151+
});
152+
describe('OptionManager.prototype.validatePanelComponent', () => {
153+
it('validatePanelComponent function does not change value of panelComponent property when it is null', () => {
154+
const tabData = {panelComponent: null};
155+
obj.validatePanelComponent(tabData);
156+
expect(tabData.panelComponent).toBe(null);
157+
});
147158
});
148159
describe('OptionManager.prototype.setOption : ', () => {
149160
it('it can not set tabs option', () => {

0 commit comments

Comments
 (0)