eclipsesource / eclipsesource/tabris-js
Tab "disappear" not fired when TabFolder disposed
- Dominant language
- JavaScript
- Stars
- 1.4k
- Forks
- 171
- PR merge metrics
- No merged PRs in 30d
Description
### Problem description
When a TabFolder is disposed, its Tabs don't receive a "disappear" event.
### Expected behavior
"disappear" should be fired on the Tabs before they fire "dispose".
### Environment
- Tabris.js version: 2.6.1
### Code snippet
Tapping on the Cart tab disposes the tab, but its "disappear" listeners are not triggered.
```javascript
const {Tab, TabFolder, TextView, ui} = require('tabris');
// Create a swipe enabled tab folder with 3 tabs
let tabFolder = new TabFolder({
left: 0, top: 0, right: 0, bottom: 0,
paging: true // enables swiping. To still be able to open the developer console in iOS, swipe from the bottom right.
}).appendTo(ui.contentView);
createTab('Cart', 'resources/cart.png', 'resources/cart-filled.png').on({
tap: () => tabFolder.dispose()
});
createTab('Pay', 'resources/card.png', 'resources/card-filled.png');
createTab('Statistic', 'resources/chart.png', 'resources/chart-filled.png');
tabFolder.on('selectionChanged', ({value: tab}) => console.log(`selection changed to ${tab.title}`));
function createTab(title, image, seletedImage) {
let tab = new Tab({
title: title, // converted to upper-case on Android
image: {src: image, scale: 2},
selectedImage: {src: seletedImage, scale: 2}
}).on({
appear: ({target}) => console.log(`${target.title} appeared`),
disappear: ({target}) => console.log(`${target.title} disappeared`),
dispose: ({target}) => console.log(`${target.title} disposed`)
}).appendTo(tabFolder);
new TextView({
centerX: 0, centerY: 0,
text: 'Content of Tab ' + title
}).appendTo(tab);
return tab;
}
```
Contributor guide
Assessment
This issue has not been assessed yet.