Skip to content

Commit 3c5273c

Browse files
rename perviousData property to previousData
1 parent b8b8bf2 commit 3c5273c

File tree

5 files changed

+42
-20
lines changed

5 files changed

+42
-20
lines changed

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -458,12 +458,12 @@ instance.on('onInit', () => {});
458458

459459
```js
460460
const [TabList, PanelList, ready] = useDynTabs({
461-
onChange: function ({currentData, perviousData, closedTabIDs, openedTabIDs}) {
461+
onChange: function ({currentData, previousData, closedTabIDs, openedTabIDs}) {
462462
// you can use 'this' here which refers to the instance
463463
},
464464
});
465465
// or
466-
instance.setOption('onChange', ({currentData, perviousData, closedTabIDs, openedTabIDs}) => {}).refresh();
466+
instance.setOption('onChange', ({currentData, previousData, closedTabIDs, openedTabIDs}) => {}).refresh();
467467
```
468468

469469
### beforeSelect
@@ -1025,6 +1025,8 @@ const open_tab_3 = function () {
10251025

10261026
- First parameter of onSelect function is an object and has perviousSelectedTabId property which is deprecated. you should use previousSelectedTabId property instead of perviousSelectedTabId property.
10271027

1028+
- First parameter of onChange function is an object and has perviousData property which is deprecated. you should use previousData property instead of perviousData property.
1029+
10281030
## Test
10291031

10301032
```js

example/basic/com/basic/service/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export default {
2828
onInit: function () {
2929
const context = this;
3030
},
31-
onChange: function ({currentData, perviousData}) {
31+
onChange: function ({currentData, previousData}) {
3232
const context = this;
3333
},
3434
beforeSelect: function (e, id) {

src/index.test.js

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -191,11 +191,6 @@ describe('select method : ', () => {
191191
expect(op.onInit.mock.calls.length === 2).toBe(true);
192192
expect(op.onChange.mock.calls.length === 1).toBe(true);
193193
expect(op.onSelect.mock.calls.length === 1).toBe(true);
194-
expect(op.onSelect.mock.calls[0][0]).toEqual({
195-
currentSelectedTabId: '2',
196-
perviousSelectedTabId: '1',
197-
previousSelectedTabId: '1',
198-
});
199194
expect(onSelect.mock.calls[0][0]).toEqual({
200195
currentSelectedTabId: '2',
201196
perviousSelectedTabId: '1',
@@ -391,21 +386,45 @@ describe('ready function : ', () => {
391386
expect(op.onChange.mock.calls.length).toBe(0);
392387
});
393388
});
394-
describe('onLoad, onInit and onChange events : ', () => {
389+
describe('initial events : ', () => {
395390
test('onLoad and then onInit are called initially but onChange is not called', () => {
396391
renderApp();
397392
expect(op.onLoad.mock.calls.length).toBe(1);
398393
expect(op.onInit.mock.calls.length).toBe(1);
399394
expect(op.onChange.mock.calls.length).toBe(0);
400395
expect(op.onLoad).toHaveBeenCalledBefore(op.onInit);
401396
});
402-
test('onChange is called with {currentData,perviousData} object as a parameter', () => {
397+
});
398+
describe('onChange callback : ', () => {
399+
test(`onChange is called with {currentData,previousData,perviousData,openedTabIDs,closedTabIDs}
400+
object as a parameter`, () => {
403401
renderApp();
404402
act(() => {
405403
instance.select('2');
406404
});
407405
expect(op.onChange.mock.calls.length).toBe(1);
406+
expect(op.onChange.mock.calls[0][0]).toEqual({
407+
currentData: {selectedTabID: '2', openTabIDs: ['1', '2']},
408+
previousData: {selectedTabID: '1', openTabIDs: ['1', '2']},
409+
perviousData: {selectedTabID: '1', openTabIDs: ['1', '2']},
410+
openedTabIDs: [],
411+
closedTabIDs: [],
412+
});
408413
expect(op.onChange.mock.calls[0][0].currentData).toEqual(instance.getCopyData());
409-
expect(op.onChange.mock.calls[0][0].perviousData).toEqual(instance.getCopyPerviousData());
414+
expect(op.onChange.mock.calls[0][0].previousData).toEqual(instance.getCopyPerviousData());
415+
});
416+
});
417+
describe('onSelect callback : ', () => {
418+
test('onSelect is called with {currentSelectedTabId,previousSelectedTabId,perviousSelectedTabId} object as a parameter', () => {
419+
renderApp();
420+
act(() => {
421+
instance.select('2');
422+
});
423+
expect(op.onSelect.mock.calls.length).toBe(1);
424+
expect(op.onSelect.mock.calls[0][0]).toEqual({
425+
currentSelectedTabId: '2',
426+
perviousSelectedTabId: '1',
427+
previousSelectedTabId: '1',
428+
});
410429
});
411430
});

src/utils/api/api.factory.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,13 @@ const _apiProps = {
5151
return this;
5252
},
5353
_subscribeSelectedTabsHistory: function () {
54-
this.on('onChange', ({currentData, perviousData, closedTabIDs}) => {
54+
this.on('onChange', ({currentData, previousData, closedTabIDs}) => {
5555
for (let i = 0, l = closedTabIDs.length; i < l; i++) {
5656
this.activedTabsHistory.remove(closedTabIDs[i]);
5757
}
58-
const isSwitched = perviousData.selectedTabID !== currentData.selectedTabID;
59-
if (isSwitched && this.isOpen(perviousData.selectedTabID) && !this.isSelected(perviousData.selectedTabID))
60-
this.activedTabsHistory.add(perviousData.selectedTabID);
58+
const isSwitched = previousData.selectedTabID !== currentData.selectedTabID;
59+
if (isSwitched && this.isOpen(previousData.selectedTabID) && !this.isSelected(previousData.selectedTabID))
60+
this.activedTabsHistory.add(previousData.selectedTabID);
6161
});
6262
return this;
6363
},
@@ -171,6 +171,7 @@ Helper.setNoneEnumProps(_apiProps, {
171171
if (isSwitched || openedTabIDs.length || closedTabIDs.length) {
172172
this.trigger('onChange', this.userProxy, {
173173
currentData: {...newState},
174+
previousData: {...oldState},
174175
perviousData: {...oldState},
175176
closedTabIDs,
176177
openedTabIDs,

src/utils/api/api.factory.test.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ describe('context of callback options should be userProxy object : ', () => {
323323
};
324324
const obj = new apiConstructor(getDeps, {options});
325325
expect(options.onChange.mock.calls.length === 0).toBe(true);
326-
obj.trigger('onChange', obj.userProxy, {currentData: {}, perviousData: {}, closedTabIDs: [], openTabIDs: []});
326+
obj.trigger('onChange', obj.userProxy, {currentData: {}, previousData: {}, closedTabIDs: [], openTabIDs: []});
327327
expect(options.onChange.mock.calls.length === 1).toBe(true);
328328
});
329329
});
@@ -474,9 +474,9 @@ describe('Api.prototype._subscribeSelectedTabsHistory : ', () => {
474474
test('subscribed function should call activedTabsHistory.remove per each closed tabID when onChange event is triggered', () => {
475475
obj.activedTabsHistory.remove = jest.fn(() => {});
476476
const currentData = {selectedTabID: '2', openTabIDs: ['2']};
477-
const perviousData = {selectedTabID: '2', openTabIDs: ['2']};
477+
const previousData = {selectedTabID: '2', openTabIDs: ['2']};
478478
const closedTabIDs = ['1', '3'];
479-
obj.trigger('onChange', obj.userProxy, {currentData, perviousData, closedTabIDs, openTabIDs: []});
479+
obj.trigger('onChange', obj.userProxy, {currentData, previousData, closedTabIDs, openTabIDs: []});
480480
expect(obj.activedTabsHistory.remove.mock.calls.length).toBe(2);
481481
expect(obj.activedTabsHistory.remove.mock.calls[0][0]).toBe('1');
482482
expect(obj.activedTabsHistory.remove.mock.calls[1][0]).toBe('3');
@@ -493,8 +493,8 @@ describe('Api.prototype._subscribeSelectedTabsHistory : ', () => {
493493
return false;
494494
});
495495
const currentData = {selectedTabID: '2', openTabIDs: ['1', '2']};
496-
const perviousData = {selectedTabID: '1', openTabIDs: ['1', '2']};
497-
obj.trigger('onChange', obj.userProxy, {currentData, perviousData, closedTabIDs: [], openTabIDs: []});
496+
const previousData = {selectedTabID: '1', openTabIDs: ['1', '2']};
497+
obj.trigger('onChange', obj.userProxy, {currentData, previousData, closedTabIDs: [], openTabIDs: []});
498498
expect(obj.activedTabsHistory.add.mock.calls.length).toBe(1);
499499
expect(obj.activedTabsHistory.add.mock.calls[0][0]).toBe('1');
500500
});

0 commit comments

Comments
 (0)